
#ifndef AFTERMATH_RANDOM_ZIGGURAT_NORMAL_1024_UINT32_HPP_INCLUDED
#define AFTERMATH_RANDOM_ZIGGURAT_NORMAL_1024_UINT32_HPP_INCLUDED

#include "../double_constants.hpp"
#include "../probability/dist_normal.hpp"
#include "../template_math.hpp"
#include "ziggurat_core.hpp"
#include "ziggurat_normal.hpp"

#include <cmath>
#include <cstdint>

namespace aftermath
{
    namespace random
    {
        template <typename t_uniform_type>
        struct ziggurat_normal<1024U, t_uniform_type, std::size_t, mersenne_number<32>::value>
            : public ziggurat_core<1024U, ziggurat_normal<1024U, t_uniform_type, std::size_t, mersenne_number<32>::value>, t_uniform_type, std::size_t, mersenne_number<32>::value, double>
        {
            static const std::uint_fast32_t n_boxes = 1024U;
            static const std::size_t diameter = mersenne_number<32>::value;

            typedef t_uniform_type  uniform_type;
            typedef double          result_type;
            typedef std::size_t     bounds_type;
            typedef ziggurat_normal<n_boxes, uniform_type, bounds_type, diameter> type;
            typedef ziggurat_core<n_boxes, type, uniform_type, bounds_type, diameter, double> base_type;
            
            // Inherited typedef's:
            typedef type ziggurat_impl_type;

        private:
            const result_type  right_tail_x = 3.8520461503683912;
            const result_type  left_tail_x = -3.8520461503683912;
            const result_type  box_volume = 0.00098010797069741627;
            const uniform_type box_volume_uint32 = 4209531;

            // Zero-based index of the box that covers the right tail.
            static const std::uint_fast32_t right_tail_index = 0;
            // Zero-based index of the box that covers the left tail.
            static const std::uint_fast32_t left_tail_index = n_boxes - 1;

            // (<diameter> + 1)-downscaled right (left) x-endpoints of the boxes, modified for the tail boxes: { x_0*, x_1, x_2, ..., x_{n - 1}, x_n* }.
            const result_type  m_width_scaled[n_boxes] = {
                9.5387422707711409e-10,  8.9687438457468321e-10,  8.5196293263954959e-10,  8.2392124262487887e-10,  8.0325211967765233e-10,  7.8676288270155556e-10,  7.7298010530708171e-10,  7.6109900142176176e-10,
                7.5063053692471176e-10,  7.4125469632001719e-10,  7.3275030419509188e-10,  7.2495793207127005e-10,  7.1775875746258749e-10,  7.1106178157271650e-10,  7.0479572384512725e-10,  6.9890367637126554e-10,
                6.9333946034409817e-10,  6.8806507194143681e-10,  6.8304884804023763e-10,  6.7826412081452592e-10,  6.7368821244445757e-10,  6.6930167150675020e-10,  6.6508768436885582e-10,  6.6103161545904797e-10,
                6.5712064389392294e-10,  6.5334347314598021e-10,  6.4969009677204096e-10,  6.4615160766382358e-10,  6.4272004144160274e-10,  6.3938824689212035e-10,  6.3614977801910543e-10,  6.3299880350845490e-10,
                6.2993003033325412e-10,  6.2693863892172640e-10,  6.2402022784393563e-10,  6.2117076638338384e-10,  6.1838655367833728e-10,  6.1566418336719639e-10,  6.1300051286897565e-10,  6.1039263658620629e-10,
                6.0783786244247353e-10,  6.0533369126725937e-10,  6.0287779862203958e-10,  6.0046801872770750e-10,  5.9810233020747738e-10,  5.9577884340387155e-10,  5.9349578906510719e-10,  5.9125150822665630e-10,
                5.8904444313912983e-10,  5.8687312911487060e-10,  5.8473618718347478e-10,  5.8263231746150007e-10,  5.8056029315434426e-10,  5.7851895511908343e-10,  5.7650720692626577e-10,  5.7452401036652523e-10,
                5.7256838135462539e-10,  5.7063938618934434e-10,  5.6873613813261318e-10,  5.6685779427564538e-10,  5.6500355266354396e-10,  5.6317264965313153e-10,  5.6136435748158809e-10,  5.5957798202596047e-10,
                5.5781286073577824e-10,  5.5606836072291476e-10,  5.5434387699450600e-10,  5.5263883081621471e-10,  5.5095266819442912e-10,  5.4928485846713690e-10,  5.4763489299423528e-10,  5.4600228393894401e-10,
                5.4438656313279348e-10,  5.4278728101737757e-10,  5.4120400565670146e-10,  5.3963632181452672e-10,  5.3808383009162837e-10,  5.3654614611833801e-10,  5.3502289979815936e-10,  5.3351373459861373e-10,
                5.3201830688580653e-10,  5.3053628529950737e-10,  5.2906735016580800e-10,  5.2761119294466830e-10,  5.2616751570988300e-10,  5.2473603065920348e-10,  5.2331645965253225e-10,  5.2190853377627359e-10,
                5.2051199293207566e-10,  5.1912658544833667e-10,  5.1775206771297346e-10,  5.1638820382606550e-10,  5.1503476527109192e-10,  5.1369153060357498e-10,  5.1235828515603088e-10,  5.1103482075820946e-10,
                5.0972093547167756e-10,  5.0841643333786886e-10,  5.0712112413878481e-10,  5.0583482316958859e-10,  5.0455735102238666e-10,  5.0328853338054082e-10,  5.0202820082289853e-10,  5.0077618863737027e-10,
                4.9953233664332111e-10,  4.9829648902227862e-10,  4.9706849415649188e-10,  4.9584820447490667e-10,  4.9463547630614960e-10,  4.9343016973814003e-10,  4.9223214848397250e-10,  4.9104127975373504e-10,
                4.8985743413194889e-10,  4.8868048546033500e-10,  4.8751031072563030e-10,  4.8634678995219347e-10,  4.8518980609915557e-10,  4.8403924496188521e-10,  4.8289499507755180e-10,  4.8175694763458251e-10,
                4.8062499638582102e-10,  4.7949903756520644e-10,  4.7837896980780169e-10,  4.7726469407300984e-10,  4.7615611357082618e-10,  4.7505313369098201e-10,  4.7395566193484437e-10,  4.7286360784994286e-10,
                4.7177688296700224e-10,  4.7069540073936549e-10,  4.6961907648469860e-10,  4.6854782732887363e-10,  4.6748157215193254e-10,  4.6642023153603892e-10,  4.6536372771532975e-10,  4.6431198452758388e-10,
                4.6326492736762791e-10,  4.6222248314240458e-10,  4.6118458022763198e-10,  4.6015114842598595e-10,  4.5912211892674123e-10,  4.5809742426680979e-10,  4.5707699829311838e-10,  4.5606077612626940e-10,
                4.5504869412543261e-10,  4.5404068985441710e-10,  4.5303670204887574e-10,  4.5203667058459630e-10,  4.5104053644683588e-10,  4.5004824170065684e-10,  4.4905972946222497e-10,  4.4807494387103176e-10,
                4.4709383006300490e-10,  4.4611633414447253e-10,  4.4514240316694823e-10,  4.4417198510270543e-10,  4.4320502882111110e-10,  4.4224148406569011e-10,  4.4128130143189257e-10,  4.4032443234553817e-10,
                4.3937082904191211e-10,  4.3842044454548868e-10,  4.3747323265025945e-10,  4.3652914790064394e-10,  4.3558814557296166e-10,  4.3465018165744535e-10,  4.3371521284077577e-10,  4.3278319648911974e-10,
                4.3185409063165328e-10,  4.3092785394455295e-10,  4.3000444573543883e-10,  4.2908382592825339e-10,  4.2816595504856120e-10,  4.2725079420925480e-10,  4.2633830509665286e-10,  4.2542844995697724e-10,
                4.2452119158319596e-10,  4.2361649330221976e-10,  4.2271431896244035e-10,  4.2181463292159886e-10,  4.2091740003497339e-10,  4.2002258564387529e-10,  4.1913015556444369e-10,  4.1824007607672867e-10,
                4.1735231391405344e-10,  4.1646683625264663e-10,  4.1558361070153566e-10,  4.1470260529269299e-10,  4.1382378847142690e-10,  4.1294712908700908e-10,  4.1207259638353139e-10,  4.1120015999098454e-10,
                4.1032978991655153e-10,  4.0946145653610925e-10,  4.0859513058593145e-10,  4.0773078315458698e-10,  4.0686838567502698e-10,  4.0600790991685524e-10,  4.0514932797877603e-10,  4.0429261228121379e-10,
                4.0343773555909946e-10,  4.0258467085481830e-10,  4.0173339151131407e-10,  4.0088387116534503e-10,  4.0003608374088681e-10,  3.9919000344267785e-10,  3.9834560474990300e-10,  3.9750286241001101e-10,
                3.9666175143266186e-10,  3.9582224708379999e-10,  3.9498432487984957e-10,  3.9414796058202812e-10,  3.9331313019077485e-10,  3.9247980994029020e-10,  3.9164797629318336e-10,  3.9081760593522424e-10,
                3.8998867577019692e-10,  3.8916116291485135e-10,  3.8833504469395035e-10,  3.8751029863540909e-10,  3.8668690246552398e-10,  3.8586483410428848e-10,  3.8504407166079302e-10,  3.8422459342870642e-10,
                3.8340637788183636e-10,  3.8258940366976640e-10,  3.8177364961356714e-10,  3.8095909470157926e-10,  3.8014571808526606e-10,  3.7933349907513339e-10,  3.7852241713671484e-10,  3.7771245188661994e-10,
                3.7690358308864352e-10,  3.7609579064993407e-10,  3.7528905461721924e-10,  3.7448335517308663e-10,  3.7367867263231783e-10,  3.7287498743827411e-10,  3.7207228015933182e-10,  3.7127053148536591e-10,
                3.7046972222427973e-10,  3.6966983329857956e-10,  3.6887084574199222e-10,  3.6807274069612405e-10,  3.6727549940715996e-10,  3.6647910322260075e-10,  3.6568353358803730e-10,  3.6488877204396024e-10,
                3.6409480022260347e-10,  3.6330159984482036e-10,  3.6250915271699086e-10,  3.6171744072795861e-10,  3.6092644584599622e-10,  3.6013615011579775e-10,  3.5934653565549688e-10,  3.5855758465370952e-10,
                3.5776927936659957e-10,  3.5698160211496661e-10,  3.5619453528135413e-10,  3.5540806130717730e-10,  3.5462216268986875e-10,  3.5383682198004147e-10,  3.5305202177866730e-10,  3.5226774473427010e-10,
                3.5148397354013225e-10,  3.5070069093151331e-10,  3.4991787968287975e-10,  3.4913552260514453e-10,  3.4835360254291533e-10,  3.4757210237175039e-10,  3.4679100499542069e-10,  3.4601029334317738e-10,
                3.4522995036702328e-10,  3.4444995903898736e-10,  3.4367030234840094e-10,  3.4289096329917459e-10,  3.4211192490707445e-10,  3.4133317019699695e-10,  3.4055468220024058e-10,  3.3977644395177376e-10,
                3.3899843848749748e-10,  3.3822064884150156e-10,  3.3744305804331337e-10,  3.3666564911513786e-10,  3.3588840506908751e-10,  3.3511130890440122e-10,  3.3433434360465068e-10,  3.3355749213493320e-10,
                3.3278073743904948e-10,  3.3200406243666530e-10,  3.3122745002045566e-10,  3.3045088305323012e-10,  3.2967434436503804e-10,  3.2889781675025226e-10,  3.2812128296463001e-10,  3.2734472572234951e-10,
                3.2656812769302093e-10,  3.2579147149867016e-10,  3.2501473971069406e-10,  3.2423791484678560e-10,  3.2346097936782732e-10,  3.2268391567475164e-10,  3.2190670610536637e-10,  3.2112933293114381e-10,
                3.2035177835397171e-10,  3.1957402450286450e-10,  3.1879605343063291e-10,  3.1801784711051032e-10,  3.1723938743273387e-10,  3.1646065620107857e-10,  3.1568163512934245e-10,  3.1490230583778067e-10,
                3.1412264984948678e-10,  3.1334264858671878e-10,  3.1256228336716802e-10,  3.1178153540016876e-10,  3.1100038578284586e-10,  3.1021881549619867e-10,  3.0943680540111835e-10,  3.0865433623433638e-10,
                3.0787138860430162e-10,  3.0708794298698331e-10,  3.0630397972159731e-10,  3.0551947900625282e-10,  3.0473442089351663e-10,  3.0394878528589200e-10,  3.0316255193120907e-10,  3.0237570041792364e-10,
                3.0158821017032104e-10,  3.0080006044362170e-10,  3.0001123031898499e-10,  2.9922169869840759e-10,  2.9843144429951277e-10,  2.9764044565022663e-10,  2.9684868108333733e-10,  2.9605612873093313e-10,
                2.9526276651871498e-10,  2.9446857216017919e-10,  2.9367352315066550e-10,  2.9287759676126588e-10,  2.9208077003258899e-10,  2.9128301976837519e-10,  2.9048432252895679e-10,  2.8968465462455790e-10,
                2.8888399210842821e-10,  2.8808231076980465e-10,  2.8727958612669476e-10,  2.8647579341847524e-10,  2.8567090759829904e-10,  2.8486490332530398e-10,  2.8405775495661556e-10,  2.8324943653913652e-10,
                2.8243992180111514e-10,  2.8162918414348426e-10,  2.8081719663096229e-10,  2.8000393198290747e-10,  2.7918936256391603e-10,  2.7837346037415466e-10,  2.7755619703941715e-10,  2.7673754380089475e-10,
                2.7591747150464926e-10,  2.7509595059077748e-10,  2.7427295108225495e-10,  2.7344844257344670e-10,  2.7262239421827182e-10,  2.7179477471800831e-10,  2.7096555230872402e-10,  2.7013469474831881e-10,
                2.6930216930316222e-10,  2.6846794273431065e-10,  2.6763198128328680e-10,  2.6679425065740356e-10,  2.6595471601461383e-10,  2.6511334194786648e-10,  2.6427009246894817e-10,  2.6342493099178931e-10,
                2.6257782031521180e-10,  2.6172872260509479e-10,  2.6087759937593363e-10,  2.6002441147176605e-10,  2.5916911904643801e-10,  2.5831168154318064e-10,  2.5745205767346794e-10,  2.5659020539512344e-10,
                2.5572608188964239e-10,  2.5485964353869439e-10,  2.5399084589976919e-10,  2.5311964368092688e-10,  2.5224599071461126e-10,  2.5136983993048294e-10,  2.5049114332722676e-10,  2.4960985194328503e-10,
                2.4872591582646596e-10,  2.4783928400237335e-10,  2.4694990444160101e-10,  2.4605772402563175e-10,  2.4516268851137770e-10,  2.4426474249429472e-10,  2.4336382937000011e-10,  2.4245989129431822e-10,
                2.4155286914167462e-10,  2.4064270246175412e-10,  2.3972932943433338e-10,  2.3881268682219303e-10,  2.3789270992200852e-10,  2.3696933251311260e-10,  2.3604248680401563e-10,  2.3511210337656277e-10,
                2.3417811112759919e-10,  2.3324043720800636e-10,  2.3229900695896332e-10,  2.3135374384527733e-10,  2.3040456938561807e-10,  2.2945140307947802e-10,  2.2849416233067012e-10,  2.2753276236716047e-10,
                2.2656711615702006e-10,  2.2559713432026413e-10,  2.2462272503633183e-10,  2.2364379394694063e-10,  2.2266024405403117e-10,  2.2167197561249718e-10,  2.2067888601737283e-10,  2.1968086968512498e-10,
                2.1867781792867165e-10,  2.1766961882571870e-10,  2.1665615707997533e-10,  2.1563731387477472e-10,  2.1461296671858855e-10,  2.1358298928188313e-10,  2.1254725122472028e-10,  2.1150561801445706e-10,
                2.1045795073284470e-10,  2.0940410587176841e-10,  2.0834393511680496e-10,  2.0727728511770408e-10,  2.0620399724482147e-10,  2.0512390733044511e-10,  2.0403684539386162e-10,  2.0294263534890444e-10,
                2.0184109469260960e-10,  2.0073203417347618e-10,  1.9961525743768623e-10,  1.9849056065148033e-10,  1.9735773209770920e-10,  1.9621655174438523e-10,  1.9506679078283933e-10,  1.9390821113284377e-10,
                1.9274056491178816e-10,  1.9156359386468878e-10,  1.9037702875146707e-10,  1.8918058868754544e-10,  1.8797398043337173e-10,  1.8675689762799020e-10,  1.8552901996121905e-10,  1.8429001227836148e-10,
                1.8303952361065840e-10,  1.8177718612387277e-10,  1.8050261397646099e-10,  1.7921540207771937e-10,  1.7791512473506849e-10,  1.7660133417823116e-10,  1.7527355894643813e-10,  1.7393130212292173e-10,
                1.7257403939878756e-10,  1.7120121694583213e-10,  1.6981224907493552e-10,  1.6840651565322278e-10,  1.6698335924915877e-10,  1.6554208196999989e-10,  1.6408194195042757e-10,  1.6260214944455235e-10,
                1.6110186246558175e-10,  1.5958018190801274e-10,  1.5803614607589399e-10,  1.5646872452706710e-10,  1.5487681112678906e-10,  1.5325921618405581e-10,  1.5161465751939054e-10,  1.4994175028266922e-10,
                1.4823899530222435e-10,  1.4650476570002745e-10,  1.4473729144960752e-10,  1.4293464148007161e-10,  1.4109470283654039e-10,  1.3921515628825470e-10,  1.3729344762203213e-10,  1.3532675365890020e-10,
                1.3331194176921334e-10,  1.3124552131322605e-10,  1.2912358496684875e-10,  1.2694173725816423e-10,  1.2469500676859929e-10,  1.2237773723776937e-10,  1.1998345109206581e-10,  1.1750467644430263e-10,
                1.1493272498919327e-10,  1.1225740280430617e-10,  1.0946662778759393e-10,  1.0654591448406816e-10,  1.0347766612163231e-10,  1.0024017880684472e-10,  9.6806202552020554e-11,  9.3140795012121499e-11,
                8.9197997248567509e-11,  8.4915444130455361e-11,  8.0205116776672763e-11,  7.4936287143943363e-11,  6.8900907114363503e-11,  6.1733338923170754e-11,  5.2682288183833423e-11,  3.9678436838436624e-11,
                -3.9678436838436624e-11, -5.2682288183833423e-11, -6.1733338923170754e-11, -6.8900907114363503e-11, -7.4936287143943363e-11, -8.0205116776672763e-11, -8.4915444130455361e-11, -8.9197997248567509e-11,
                -9.3140795012121499e-11, -9.6806202552020554e-11, -1.0024017880684472e-10, -1.0347766612163231e-10, -1.0654591448406816e-10, -1.0946662778759393e-10, -1.1225740280430617e-10, -1.1493272498919327e-10,
                -1.1750467644430263e-10, -1.1998345109206581e-10, -1.2237773723776937e-10, -1.2469500676859929e-10, -1.2694173725816423e-10, -1.2912358496684875e-10, -1.3124552131322605e-10, -1.3331194176921334e-10,
                -1.3532675365890020e-10, -1.3729344762203213e-10, -1.3921515628825470e-10, -1.4109470283654039e-10, -1.4293464148007161e-10, -1.4473729144960752e-10, -1.4650476570002745e-10, -1.4823899530222435e-10,
                -1.4994175028266922e-10, -1.5161465751939054e-10, -1.5325921618405581e-10, -1.5487681112678906e-10, -1.5646872452706710e-10, -1.5803614607589399e-10, -1.5958018190801274e-10, -1.6110186246558175e-10,
                -1.6260214944455235e-10, -1.6408194195042757e-10, -1.6554208196999989e-10, -1.6698335924915877e-10, -1.6840651565322278e-10, -1.6981224907493552e-10, -1.7120121694583213e-10, -1.7257403939878756e-10,
                -1.7393130212292173e-10, -1.7527355894643813e-10, -1.7660133417823116e-10, -1.7791512473506849e-10, -1.7921540207771937e-10, -1.8050261397646099e-10, -1.8177718612387277e-10, -1.8303952361065840e-10,
                -1.8429001227836148e-10, -1.8552901996121905e-10, -1.8675689762799020e-10, -1.8797398043337173e-10, -1.8918058868754544e-10, -1.9037702875146707e-10, -1.9156359386468878e-10, -1.9274056491178816e-10,
                -1.9390821113284377e-10, -1.9506679078283933e-10, -1.9621655174438523e-10, -1.9735773209770920e-10, -1.9849056065148033e-10, -1.9961525743768623e-10, -2.0073203417347618e-10, -2.0184109469260960e-10,
                -2.0294263534890444e-10, -2.0403684539386162e-10, -2.0512390733044511e-10, -2.0620399724482147e-10, -2.0727728511770408e-10, -2.0834393511680496e-10, -2.0940410587176841e-10, -2.1045795073284470e-10,
                -2.1150561801445706e-10, -2.1254725122472028e-10, -2.1358298928188313e-10, -2.1461296671858855e-10, -2.1563731387477472e-10, -2.1665615707997533e-10, -2.1766961882571870e-10, -2.1867781792867165e-10,
                -2.1968086968512498e-10, -2.2067888601737283e-10, -2.2167197561249718e-10, -2.2266024405403117e-10, -2.2364379394694063e-10, -2.2462272503633183e-10, -2.2559713432026413e-10, -2.2656711615702006e-10,
                -2.2753276236716047e-10, -2.2849416233067012e-10, -2.2945140307947802e-10, -2.3040456938561807e-10, -2.3135374384527733e-10, -2.3229900695896332e-10, -2.3324043720800636e-10, -2.3417811112759919e-10,
                -2.3511210337656277e-10, -2.3604248680401563e-10, -2.3696933251311260e-10, -2.3789270992200852e-10, -2.3881268682219303e-10, -2.3972932943433338e-10, -2.4064270246175412e-10, -2.4155286914167462e-10,
                -2.4245989129431822e-10, -2.4336382937000011e-10, -2.4426474249429472e-10, -2.4516268851137770e-10, -2.4605772402563175e-10, -2.4694990444160101e-10, -2.4783928400237335e-10, -2.4872591582646596e-10,
                -2.4960985194328503e-10, -2.5049114332722676e-10, -2.5136983993048294e-10, -2.5224599071461126e-10, -2.5311964368092688e-10, -2.5399084589976919e-10, -2.5485964353869439e-10, -2.5572608188964239e-10,
                -2.5659020539512344e-10, -2.5745205767346794e-10, -2.5831168154318064e-10, -2.5916911904643801e-10, -2.6002441147176605e-10, -2.6087759937593363e-10, -2.6172872260509479e-10, -2.6257782031521180e-10,
                -2.6342493099178931e-10, -2.6427009246894817e-10, -2.6511334194786648e-10, -2.6595471601461383e-10, -2.6679425065740356e-10, -2.6763198128328680e-10, -2.6846794273431065e-10, -2.6930216930316222e-10,
                -2.7013469474831881e-10, -2.7096555230872402e-10, -2.7179477471800831e-10, -2.7262239421827182e-10, -2.7344844257344670e-10, -2.7427295108225495e-10, -2.7509595059077748e-10, -2.7591747150464926e-10,
                -2.7673754380089475e-10, -2.7755619703941715e-10, -2.7837346037415466e-10, -2.7918936256391603e-10, -2.8000393198290747e-10, -2.8081719663096229e-10, -2.8162918414348426e-10, -2.8243992180111514e-10,
                -2.8324943653913652e-10, -2.8405775495661556e-10, -2.8486490332530398e-10, -2.8567090759829904e-10, -2.8647579341847524e-10, -2.8727958612669476e-10, -2.8808231076980465e-10, -2.8888399210842821e-10,
                -2.8968465462455790e-10, -2.9048432252895679e-10, -2.9128301976837519e-10, -2.9208077003258899e-10, -2.9287759676126588e-10, -2.9367352315066550e-10, -2.9446857216017919e-10, -2.9526276651871498e-10,
                -2.9605612873093313e-10, -2.9684868108333733e-10, -2.9764044565022663e-10, -2.9843144429951277e-10, -2.9922169869840759e-10, -3.0001123031898499e-10, -3.0080006044362170e-10, -3.0158821017032104e-10,
                -3.0237570041792364e-10, -3.0316255193120907e-10, -3.0394878528589200e-10, -3.0473442089351663e-10, -3.0551947900625282e-10, -3.0630397972159731e-10, -3.0708794298698331e-10, -3.0787138860430162e-10,
                -3.0865433623433638e-10, -3.0943680540111835e-10, -3.1021881549619867e-10, -3.1100038578284586e-10, -3.1178153540016876e-10, -3.1256228336716802e-10, -3.1334264858671878e-10, -3.1412264984948678e-10,
                -3.1490230583778067e-10, -3.1568163512934245e-10, -3.1646065620107857e-10, -3.1723938743273387e-10, -3.1801784711051032e-10, -3.1879605343063291e-10, -3.1957402450286450e-10, -3.2035177835397171e-10,
                -3.2112933293114381e-10, -3.2190670610536637e-10, -3.2268391567475164e-10, -3.2346097936782732e-10, -3.2423791484678560e-10, -3.2501473971069406e-10, -3.2579147149867016e-10, -3.2656812769302093e-10,
                -3.2734472572234951e-10, -3.2812128296463001e-10, -3.2889781675025226e-10, -3.2967434436503804e-10, -3.3045088305323012e-10, -3.3122745002045566e-10, -3.3200406243666530e-10, -3.3278073743904948e-10,
                -3.3355749213493320e-10, -3.3433434360465068e-10, -3.3511130890440122e-10, -3.3588840506908751e-10, -3.3666564911513786e-10, -3.3744305804331337e-10, -3.3822064884150156e-10, -3.3899843848749748e-10,
                -3.3977644395177376e-10, -3.4055468220024058e-10, -3.4133317019699695e-10, -3.4211192490707445e-10, -3.4289096329917459e-10, -3.4367030234840094e-10, -3.4444995903898736e-10, -3.4522995036702328e-10,
                -3.4601029334317738e-10, -3.4679100499542069e-10, -3.4757210237175039e-10, -3.4835360254291533e-10, -3.4913552260514453e-10, -3.4991787968287975e-10, -3.5070069093151331e-10, -3.5148397354013225e-10,
                -3.5226774473427010e-10, -3.5305202177866730e-10, -3.5383682198004147e-10, -3.5462216268986875e-10, -3.5540806130717730e-10, -3.5619453528135413e-10, -3.5698160211496661e-10, -3.5776927936659957e-10,
                -3.5855758465370952e-10, -3.5934653565549688e-10, -3.6013615011579775e-10, -3.6092644584599622e-10, -3.6171744072795861e-10, -3.6250915271699086e-10, -3.6330159984482036e-10, -3.6409480022260347e-10,
                -3.6488877204396024e-10, -3.6568353358803730e-10, -3.6647910322260075e-10, -3.6727549940715996e-10, -3.6807274069612405e-10, -3.6887084574199222e-10, -3.6966983329857956e-10, -3.7046972222427973e-10,
                -3.7127053148536591e-10, -3.7207228015933182e-10, -3.7287498743827411e-10, -3.7367867263231783e-10, -3.7448335517308663e-10, -3.7528905461721924e-10, -3.7609579064993407e-10, -3.7690358308864352e-10,
                -3.7771245188661994e-10, -3.7852241713671484e-10, -3.7933349907513339e-10, -3.8014571808526606e-10, -3.8095909470157926e-10, -3.8177364961356714e-10, -3.8258940366976640e-10, -3.8340637788183636e-10,
                -3.8422459342870642e-10, -3.8504407166079302e-10, -3.8586483410428848e-10, -3.8668690246552398e-10, -3.8751029863540909e-10, -3.8833504469395035e-10, -3.8916116291485135e-10, -3.8998867577019692e-10,
                -3.9081760593522424e-10, -3.9164797629318336e-10, -3.9247980994029020e-10, -3.9331313019077485e-10, -3.9414796058202812e-10, -3.9498432487984957e-10, -3.9582224708379999e-10, -3.9666175143266186e-10,
                -3.9750286241001101e-10, -3.9834560474990300e-10, -3.9919000344267785e-10, -4.0003608374088681e-10, -4.0088387116534503e-10, -4.0173339151131407e-10, -4.0258467085481830e-10, -4.0343773555909946e-10,
                -4.0429261228121379e-10, -4.0514932797877603e-10, -4.0600790991685524e-10, -4.0686838567502698e-10, -4.0773078315458698e-10, -4.0859513058593145e-10, -4.0946145653610925e-10, -4.1032978991655153e-10,
                -4.1120015999098454e-10, -4.1207259638353139e-10, -4.1294712908700908e-10, -4.1382378847142690e-10, -4.1470260529269299e-10, -4.1558361070153566e-10, -4.1646683625264663e-10, -4.1735231391405344e-10,
                -4.1824007607672867e-10, -4.1913015556444369e-10, -4.2002258564387529e-10, -4.2091740003497339e-10, -4.2181463292159886e-10, -4.2271431896244035e-10, -4.2361649330221976e-10, -4.2452119158319596e-10,
                -4.2542844995697724e-10, -4.2633830509665286e-10, -4.2725079420925480e-10, -4.2816595504856120e-10, -4.2908382592825339e-10, -4.3000444573543883e-10, -4.3092785394455295e-10, -4.3185409063165328e-10,
                -4.3278319648911974e-10, -4.3371521284077577e-10, -4.3465018165744535e-10, -4.3558814557296166e-10, -4.3652914790064394e-10, -4.3747323265025945e-10, -4.3842044454548868e-10, -4.3937082904191211e-10,
                -4.4032443234553817e-10, -4.4128130143189257e-10, -4.4224148406569011e-10, -4.4320502882111110e-10, -4.4417198510270543e-10, -4.4514240316694823e-10, -4.4611633414447253e-10, -4.4709383006300490e-10,
                -4.4807494387103176e-10, -4.4905972946222497e-10, -4.5004824170065684e-10, -4.5104053644683588e-10, -4.5203667058459630e-10, -4.5303670204887574e-10, -4.5404068985441710e-10, -4.5504869412543261e-10,
                -4.5606077612626940e-10, -4.5707699829311838e-10, -4.5809742426680979e-10, -4.5912211892674123e-10, -4.6015114842598595e-10, -4.6118458022763198e-10, -4.6222248314240458e-10, -4.6326492736762791e-10,
                -4.6431198452758388e-10, -4.6536372771532975e-10, -4.6642023153603892e-10, -4.6748157215193254e-10, -4.6854782732887363e-10, -4.6961907648469860e-10, -4.7069540073936549e-10, -4.7177688296700224e-10,
                -4.7286360784994286e-10, -4.7395566193484437e-10, -4.7505313369098201e-10, -4.7615611357082618e-10, -4.7726469407300984e-10, -4.7837896980780169e-10, -4.7949903756520644e-10, -4.8062499638582102e-10,
                -4.8175694763458251e-10, -4.8289499507755180e-10, -4.8403924496188521e-10, -4.8518980609915557e-10, -4.8634678995219347e-10, -4.8751031072563030e-10, -4.8868048546033500e-10, -4.8985743413194889e-10,
                -4.9104127975373504e-10, -4.9223214848397250e-10, -4.9343016973814003e-10, -4.9463547630614960e-10, -4.9584820447490667e-10, -4.9706849415649188e-10, -4.9829648902227862e-10, -4.9953233664332111e-10,
                -5.0077618863737027e-10, -5.0202820082289853e-10, -5.0328853338054082e-10, -5.0455735102238666e-10, -5.0583482316958859e-10, -5.0712112413878481e-10, -5.0841643333786886e-10, -5.0972093547167756e-10,
                -5.1103482075820946e-10, -5.1235828515603088e-10, -5.1369153060357498e-10, -5.1503476527109192e-10, -5.1638820382606550e-10, -5.1775206771297346e-10, -5.1912658544833667e-10, -5.2051199293207566e-10,
                -5.2190853377627359e-10, -5.2331645965253225e-10, -5.2473603065920348e-10, -5.2616751570988300e-10, -5.2761119294466830e-10, -5.2906735016580800e-10, -5.3053628529950737e-10, -5.3201830688580653e-10,
                -5.3351373459861373e-10, -5.3502289979815936e-10, -5.3654614611833801e-10, -5.3808383009162837e-10, -5.3963632181452672e-10, -5.4120400565670146e-10, -5.4278728101737757e-10, -5.4438656313279348e-10,
                -5.4600228393894401e-10, -5.4763489299423528e-10, -5.4928485846713690e-10, -5.5095266819442912e-10, -5.5263883081621471e-10, -5.5434387699450600e-10, -5.5606836072291476e-10, -5.5781286073577824e-10,
                -5.5957798202596047e-10, -5.6136435748158809e-10, -5.6317264965313153e-10, -5.6500355266354396e-10, -5.6685779427564538e-10, -5.6873613813261318e-10, -5.7063938618934434e-10, -5.7256838135462539e-10,
                -5.7452401036652523e-10, -5.7650720692626577e-10, -5.7851895511908343e-10, -5.8056029315434426e-10, -5.8263231746150007e-10, -5.8473618718347478e-10, -5.8687312911487060e-10, -5.8904444313912983e-10,
                -5.9125150822665630e-10, -5.9349578906510719e-10, -5.9577884340387155e-10, -5.9810233020747738e-10, -6.0046801872770750e-10, -6.0287779862203958e-10, -6.0533369126725937e-10, -6.0783786244247353e-10,
                -6.1039263658620629e-10, -6.1300051286897565e-10, -6.1566418336719639e-10, -6.1838655367833728e-10, -6.2117076638338384e-10, -6.2402022784393563e-10, -6.2693863892172640e-10, -6.2993003033325412e-10,
                -6.3299880350845490e-10, -6.3614977801910543e-10, -6.3938824689212035e-10, -6.4272004144160274e-10, -6.4615160766382358e-10, -6.4969009677204096e-10, -6.5334347314598021e-10, -6.5712064389392294e-10,
                -6.6103161545904797e-10, -6.6508768436885582e-10, -6.6930167150675020e-10, -6.7368821244445757e-10, -6.7826412081452592e-10, -6.8304884804023763e-10, -6.8806507194143681e-10, -6.9333946034409817e-10,
                -6.9890367637126554e-10, -7.0479572384512725e-10, -7.1106178157271650e-10, -7.1775875746258749e-10, -7.2495793207127005e-10, -7.3275030419509188e-10, -7.4125469632001719e-10, -7.5063053692471176e-10,
                -7.6109900142176176e-10, -7.7298010530708171e-10, -7.8676288270155556e-10, -8.0325211967765233e-10, -8.2392124262487887e-10, -8.5196293263954959e-10, -8.9687438457468321e-10, -9.5387422707711409e-10
            };
            
            // (<diameter> + 1)-downscaled heights of the boxes: { f(x_1), f(x_2) - f(x_1), ..., f(x_{n - 2}) - f(x_{n - 1}), f(x_{n - 2}) }.
            const result_type  m_height_scaled[n_boxes] = {
                5.5701011775769007e-14,  5.9241026913954171e-14,  6.2363933358476286e-14,  6.4486454294776720e-14,  6.6145806843742708e-14,  6.7532112563042041e-14,  6.8736257492574462e-14,  6.9809261943285634e-14,
                7.0782837816194530e-14,  7.1678142234780060e-14,  7.2510047762298534e-14,  7.3289438192948208e-14,  7.4024536799600576e-14,  7.4721720294836841e-14,  7.5386041313014742e-14,  7.6021576865766407e-14,
                7.6631668315338745e-14,  7.7219091219248938e-14,  7.7786178407982558e-14,  7.8334911024364781e-14,  7.8866987092200839e-14,  7.9383873994238239e-14,  7.9886849213641675e-14,  8.0377032372540878e-14,
                8.0855410720594856e-14,  8.1322859627241373e-14,  8.1780159215921400e-14,  8.2228007985810056e-14,  8.2667034057086300e-14,  8.3097804523750425e-14,  8.3520833286259812e-14,  8.3936587653147462e-14,
                8.4345493938297255e-14,  8.4747942233080992e-14,  8.5144290496161419e-14,  8.5534868075604520e-14,  8.5919978755977521e-14,  8.6299903405840776e-14,  8.6674902287367930e-14,  8.7045217078926945e-14,
                8.7411072652706531e-14,  8.7772678642409846e-14,  8.8130230830302363e-14,  8.8483912378218428e-14,  8.8833894923288240e-14,  8.9180339555977636e-14,  8.9523397695406858e-14,  8.9863211874728663e-14,
                9.0199916447519042e-14,  9.0533638224600395e-14,  9.0864497049425040e-14,  9.1192606319054384e-14,  9.1518073456841807e-14,  9.1841000342137710e-14,  9.2161483701660555e-14,  9.2479615466599524e-14,
                9.2795483099017404e-14,  9.3109169890693800e-14,  9.3420755237178315e-14,  9.3730314889502187e-14,  9.4037921185717780e-14,  9.4343643264192121e-14,  9.4647547260368296e-14,  9.4949696488522584e-14,
                9.5250151609882037e-14,  9.5548970788323815e-14,  9.5846209834751131e-14,  9.6141922341129090e-14,  9.6436159805064950e-14,  9.6728971745729826e-14,  9.7020405811841116e-14,  9.7310507882355821e-14,
                9.7599322160463278e-14,  9.7886891261410850e-14,  9.8173256294646916e-14,  9.8458456940721468e-14,  9.8742531523345116e-14,  9.9025517076971809e-14,  9.9307449410238648e-14,  9.9588363165567413e-14,
                9.9868291875206465e-14,  1.0014726801396826e-13,  1.0042532304889646e-13,  1.0070248748607752e-13,  1.0097879091479406e-13,  1.0125426204920163e-13,  1.0152892876769617e-13,  1.0180281815012604e-13,
                1.0207595651299111e-13,  1.0234836944276002e-13,  1.0262008182742706e-13,  1.0289111788642098e-13,  1.0316150119896982e-13,  1.0343125473101800e-13,  1.0370040086078520e-13,  1.0396896140305007e-13,
                1.0423695763223588e-13,  1.0450441030436974e-13,  1.0477133967798238e-13,  1.0503776553401047e-13,  1.0530370719475950e-13,  1.0556918354198129e-13,  1.0583421303411656e-13,  1.0609881372274966e-13,
                1.0636300326831960e-13,  1.0662679895512849e-13,  1.0689021770568593e-13,  1.0715327609442564e-13,  1.0741599036082792e-13,  1.0767837642197993e-13,  1.0794044988460340e-13,  1.0820222605657779e-13,
                1.0846371995798521e-13,  1.0872494633170177e-13,  1.0898591965355852e-13,  1.0924665414209395e-13,  1.0950716376791858e-13,  1.0976746226271106e-13,  1.1002756312786397e-13,  1.1028747964279669e-13,
                1.1054722487295157e-13,  1.1080681167748866e-13,  1.1106625271669371e-13,  1.1132556045911293e-13,  1.1158474718842767e-13,  1.1184382501008118e-13,  1.1210280585766907e-13,  1.1236170149910451e-13,
                1.1262052354256857e-13,  1.1287928344225553e-13,  1.1313799250392262e-13,  1.1339666189025292e-13,  1.1365530262604010e-13,  1.1391392560320265e-13,  1.1417254158563561e-13,  1.1443116121390667e-13,
                1.1468979500980380e-13,  1.1494845338074069e-13,  1.1520714662402646e-13,  1.1546588493100542e-13,  1.1572467839107255e-13,  1.1598353699557007e-13,  1.1624247064157030e-13,  1.1650148913554960e-13,
                1.1676060219695808e-13,  1.1701981946168960e-13,  1.1727915048545622e-13,  1.1753860474707120e-13,  1.1779819165164444e-13,  1.1805792053369408e-13,  1.1831780066017777e-13,  1.1857784123344703e-13,
                1.1883805139412797e-13,  1.1909844022393145e-13,  1.1935901674839572e-13,  1.1961978993956427e-13,  1.1988076871860186e-13,  1.2014196195835114e-13,  1.2040337848583248e-13,  1.2066502708468950e-13,
                1.2092691649758248e-13,  1.2118905542853206e-13,  1.2145145254521524e-13,  1.2171411648121588e-13,  1.2197705583823158e-13,  1.2224027918823894e-13,  1.2250379507561904e-13,  1.2276761201924492e-13,
                1.2303173851453275e-13,  1.2329618303545842e-13,  1.2356095403654111e-13,  1.2382605995479539e-13,  1.2409150921165336e-13,  1.2435731021485832e-13,  1.2462347136033127e-13,  1.2489000103401172e-13,
                1.2515690761367408e-13,  1.2542419947072085e-13,  1.2569188497195392e-13,  1.2595997248132522e-13,  1.2622847036166776e-13,  1.2649738697640831e-13,  1.2676673069126274e-13,  1.2703650987591526e-13,
                1.2730673290568234e-13,  1.2757740816316258e-13,  1.2784854403987342e-13,  1.2812014893787567e-13,  1.2839223127138680e-13,  1.2866479946838397e-13,  1.2893786197219767e-13,  1.2921142724309687e-13,
                1.2948550375986657e-13,  1.2976010002137857e-13,  1.3003522454815642e-13,  1.3031088588393515e-13,  1.3058709259721686e-13,  1.3086385328282283e-13,  1.3114117656344287e-13,  1.3141907109118293e-13,
                1.3169754554911148e-13,  1.3197660865280556e-13,  1.3225626915189731e-13,  1.3253653583162151e-13,  1.3281741751436512e-13,  1.3309892306121941e-13,  1.3338106137353541e-13,  1.3366384139448346e-13,
                1.3394727211061753e-13,  1.3423136255344512e-13,  1.3451612180100327e-13,  1.3480155897944161e-13,  1.3508768326461301e-13,  1.3537450388367258e-13,  1.3566203011668581e-13,  1.3595027129824641e-13,
                1.3623923681910468e-13,  1.3652893612780715e-13,  1.3681937873234803e-13,  1.3711057420183344e-13,  1.3740253216815893e-13,  1.3769526232770116e-13,  1.3798877444302440e-13,  1.3828307834460260e-13,
                1.3857818393255783e-13,  1.3887410117841577e-13,  1.3917084012687905e-13,  1.3946841089761923e-13,  1.3976682368708813e-13,  1.4006608877034942e-13,  1.4036621650293105e-13,  1.4066721732269962e-13,
                1.4096910175175728e-13,  1.4127188039836203e-13,  1.4157556395887243e-13,  1.4188016321971729e-13,  1.4218568905939150e-13,  1.4249215245047872e-13,  1.4279956446170184e-13,  1.4310793626000222e-13,
                1.4341727911264852e-13,  1.4372760438937620e-13,  1.4403892356455857e-13,  1.4435124821941043e-13,  1.4466459004422525e-13,  1.4497896084064708e-13,  1.4529437252397794e-13,  1.4561083712552220e-13,
                1.4592836679496859e-13,  1.4624697380281134e-13,  1.4656667054281137e-13,  1.4688746953449879e-13,  1.4720938342571797e-13,  1.4753242499521631e-13,  1.4785660715527798e-13,  1.4818194295440407e-13,
                1.4850844558004031e-13,  1.4883612836135378e-13,  1.4916500477206002e-13,  1.4949508843330201e-13,  1.4982639311658233e-13,  1.5015893274675026e-13,  1.5049272140504510e-13,  1.5082777333219747e-13,
                1.5116410293159024e-13,  1.5150172477248054e-13,  1.5184065359328491e-13,  1.5218090430492905e-13,  1.5252249199426419e-13,  1.5286543192755185e-13,  1.5320973955401896e-13,  1.5355543050948528e-13,
                1.5390252062006522e-13,  1.5425102590594604e-13,  1.5460096258524477e-13,  1.5495234707794585e-13,  1.5530519600992194e-13,  1.5565952621704020e-13,  1.5601535474935649e-13,  1.5637269887539985e-13,
                1.5673157608655012e-13,  1.5709200410151105e-13,  1.5745400087088183e-13,  1.5781758458182977e-13,  1.5818277366286710e-13,  1.5854958678873484e-13,  1.5891804288539688e-13,  1.5928816113514737e-13,
                1.5965996098183492e-13,  1.6003346213620673e-13,  1.6040868458137641e-13,  1.6078564857841900e-13,  1.6116437467209691e-13,  1.6154488369672080e-13,  1.6192719678214917e-13,  1.6231133535993096e-13,
                1.6269732116959547e-13,  1.6308517626509376e-13,  1.6347492302139638e-13,  1.6386658414125199e-13,  1.6426018266211180e-13,  1.6465574196322479e-13,  1.6505328577290908e-13,  1.6545283817600476e-13,
                1.6585442362151372e-13,  1.6625806693043241e-13,  1.6666379330378340e-13,  1.6707162833085199e-13,  1.6748159799763430e-13,  1.6789372869550350e-13,  1.6830804723010104e-13,  1.6872458083046010e-13,
                1.6914335715836856e-13,  1.6956440431797931e-13,  1.6998775086567571e-13,  1.7041342582020056e-13,  1.7084145867305715e-13,  1.7127187939919122e-13,  1.7170471846796304e-13,  1.7214000685441926e-13,
                1.7257777605087441e-13,  1.7301805807881234e-13,  1.7346088550111843e-13,  1.7390629143465346e-13,  1.7435430956318100e-13,  1.7480497415066011e-13,  1.7525832005491587e-13,  1.7571438274170079e-13,
                1.7617319829916060e-13,  1.7663480345271826e-13,  1.7709923558039109e-13,  1.7756653272855593e-13,  1.7803673362817832e-13,  1.7850987771152209e-13,  1.7898600512935638e-13,  1.7946515676867821e-13,
                1.7994737427096884e-13,  1.8043270005100350e-13,  1.8092117731623464e-13,  1.8141285008676962e-13,  1.8190776321596489e-13,  1.8240596241165942e-13,  1.8290749425807129e-13,  1.8341240623838232e-13,
                1.8392074675803668e-13,  1.8443256516878056e-13,  1.8494791179347133e-13,  1.8546683795168555e-13,  1.8598939598615695e-13,  1.8651563929007643e-13,  1.8704562233528798e-13,  1.8757940070141565e-13,
                1.8811703110595860e-13,  1.8865857143539270e-13,  1.8920408077731910e-13,  1.8975361945370203e-13,  1.9030724905524009e-13,  1.9086503247691734e-13,  1.9142703395478280e-13,  1.9199331910400914e-13,
                1.9256395495828401e-13,  1.9313901001058981e-13,  1.9371855425543069e-13,  1.9430265923256814e-13,  1.9489139807233001e-13,  1.9548484554256054e-13,  1.9608307809728277e-13,  1.9668617392714809e-13,
                1.9729421301175165e-13,  1.9790727717389613e-13,  1.9852545013589109e-13,  1.9914881757797910e-13,  1.9977746719898503e-13,  2.0041148877928991e-13,  2.0105097424623595e-13,  2.0169601774207527e-13,
                2.0234671569458083e-13,  2.0300316689044443e-13,  2.0366547255159379e-13,  2.0433373641456752e-13,  2.0500806481309498e-13,  2.0568856676403590e-13,  2.0637535405684370e-13,  2.0706854134672544e-13,
                2.0776824625168151e-13,  2.0847458945361860e-13,  2.0918769480374086e-13,  2.0990768943243612e-13,  2.1063470386388684e-13,  2.1136887213564935e-13,  2.1211033192345933e-13,  2.1285922467153739e-13,
                2.1361569572868509e-13,  2.1437989449047994e-13,  2.1515197454789682e-13,  2.1593209384270405e-13,  2.1672041483000425e-13,  2.1751710464831365e-13,  2.1832233529759923e-13,  2.1913628382571982e-13,
                2.1995913252374686e-13,  2.2079106913067202e-13,  2.2163228704804238e-13,  2.2248298556510072e-13,  2.2334337009504735e-13,  2.2421365242308250e-13,  2.2509405096693380e-13,  2.2598479105062249e-13,
                2.2688610519227567e-13,  2.2779823340684879e-13,  2.2872142352468541e-13,  2.2965593152690829e-13,  2.3060202189870890e-13,  2.3155996800168166e-13,  2.3253005246643523e-13,  2.3351256760680603e-13,
                2.3450781585710109e-13,  2.3551611023390719e-13,  2.3653777482412361e-13,  2.3757314530100653e-13,  2.3862256947015577e-13,  2.3968640784753076e-13,  2.4076503427175232e-13,  2.4185883655313364e-13,
                2.4296821716208734e-13,  2.4409359395977920e-13,  2.4523540097414407e-13,  2.4639408922464904e-13,  2.4757012759948452e-13,  2.4876400378918995e-13,  2.4997622528107957e-13,  2.5120732041922959e-13,
                2.5245783953522546e-13,  2.5372835615535104e-13,  2.5501946829043693e-13,  2.5633179981517798e-13,  2.5766600194438870e-13,  2.5902275481439660e-13,  2.6040276917858751e-13,  2.6180678822702455e-13,
                2.6323558954107430e-13,  2.6468998719510551e-13,  2.6617083401859200e-13,  2.6767902403337103e-13,  2.6921549508240225e-13,  2.7078123166816515e-13,  2.7237726802085200e-13,  2.7400469141879234e-13,
                2.7566464578612072e-13,  2.7735833559561733e-13,  2.7908703010796124e-13,  2.8085206798239961e-13,  2.8265486229812373e-13,  2.8449690603053671e-13,  2.8637977803219664e-13,  2.8830514957463807e-13,
                2.9027479151465091e-13,  2.9229058215709230e-13,  2.9435451589611720e-13,  2.9646871272806971e-13,  2.9863542874245699e-13,  3.0085706771276590e-13,  3.0313619392678295e-13,  3.0547554641702913e-13,
                3.0787805477651800e-13,  3.1034685677401299e-13,  3.1288531801718654e-13,  3.1549705395266346e-13,  3.1818595454021301e-13,  3.2095621199601448e-13,  3.2381235206904765e-13,  3.2675926939786810e-13,
                3.2980226759560964e-13,  3.3294710483317899e-13,  3.3620004583957222e-13,  3.3956792142083175e-13,  3.4305819682411245e-13,  3.4667905055195243e-13,  3.5043946557891133e-13,  3.5434933535763883e-13,
                3.5841958754983307e-13,  3.6266232911367289e-13,  3.6709101726919852e-13,  3.7172066200923507e-13,  3.7656806731134735e-13,  3.8165212015430183e-13,  3.8699413901598743e-13,  3.9261829696252755e-13,
                3.9855213906497145e-13,  4.0482722018546036e-13,  4.1147989787199576e-13,  4.1855232725364118e-13,  4.2609372204953868e-13,  4.3416197058615713e-13,  4.4282573197745232e-13,  4.5216719166244772e-13,
                4.6228573767846093e-13,  4.7330294686798837e-13,  4.8536947404756373e-13,  4.9867477145704818e-13,  5.1346113172451559e-13,  5.3004454089617890e-13,  5.4884664571439609e-13,  5.7044563070467925e-13,
                5.9566090264294775e-13,  6.2570195680068183e-13,  6.6244850316679528e-13,  7.0902578150109488e-13,  7.7113294701382417e-13,  8.6066557360762843e-13,  1.0085317359341540e-12,  1.3390587883128499e-12,
                1.3390587883128499e-12,  1.0085317359341540e-12,  8.6066557360762843e-13,  7.7113294701382417e-13,  7.0902578150109488e-13,  6.6244850316679528e-13,  6.2570195680068183e-13,  5.9566090264294775e-13,
                5.7044563070467925e-13,  5.4884664571439609e-13,  5.3004454089617890e-13,  5.1346113172451559e-13,  4.9867477145704818e-13,  4.8536947404756373e-13,  4.7330294686798837e-13,  4.6228573767846093e-13,
                4.5216719166244772e-13,  4.4282573197745232e-13,  4.3416197058615713e-13,  4.2609372204953868e-13,  4.1855232725364118e-13,  4.1147989787199576e-13,  4.0482722018546036e-13,  3.9855213906497145e-13,
                3.9261829696252755e-13,  3.8699413901598743e-13,  3.8165212015430183e-13,  3.7656806731134735e-13,  3.7172066200923507e-13,  3.6709101726919852e-13,  3.6266232911367289e-13,  3.5841958754983307e-13,
                3.5434933535763883e-13,  3.5043946557891133e-13,  3.4667905055195243e-13,  3.4305819682411245e-13,  3.3956792142083175e-13,  3.3620004583957222e-13,  3.3294710483317899e-13,  3.2980226759560964e-13,
                3.2675926939786810e-13,  3.2381235206904765e-13,  3.2095621199601448e-13,  3.1818595454021301e-13,  3.1549705395266346e-13,  3.1288531801718654e-13,  3.1034685677401299e-13,  3.0787805477651800e-13,
                3.0547554641702913e-13,  3.0313619392678295e-13,  3.0085706771276590e-13,  2.9863542874245699e-13,  2.9646871272806971e-13,  2.9435451589611720e-13,  2.9229058215709230e-13,  2.9027479151465091e-13,
                2.8830514957463807e-13,  2.8637977803219664e-13,  2.8449690603053671e-13,  2.8265486229812373e-13,  2.8085206798239961e-13,  2.7908703010796124e-13,  2.7735833559561733e-13,  2.7566464578612072e-13,
                2.7400469141879234e-13,  2.7237726802085200e-13,  2.7078123166816515e-13,  2.6921549508240225e-13,  2.6767902403337103e-13,  2.6617083401859200e-13,  2.6468998719510551e-13,  2.6323558954107430e-13,
                2.6180678822702455e-13,  2.6040276917858751e-13,  2.5902275481439660e-13,  2.5766600194438870e-13,  2.5633179981517798e-13,  2.5501946829043693e-13,  2.5372835615535104e-13,  2.5245783953522546e-13,
                2.5120732041922959e-13,  2.4997622528107957e-13,  2.4876400378918995e-13,  2.4757012759948452e-13,  2.4639408922464904e-13,  2.4523540097414407e-13,  2.4409359395977920e-13,  2.4296821716208734e-13,
                2.4185883655313364e-13,  2.4076503427175232e-13,  2.3968640784753076e-13,  2.3862256947015577e-13,  2.3757314530100653e-13,  2.3653777482412361e-13,  2.3551611023390719e-13,  2.3450781585710109e-13,
                2.3351256760680603e-13,  2.3253005246643523e-13,  2.3155996800168166e-13,  2.3060202189870890e-13,  2.2965593152690829e-13,  2.2872142352468541e-13,  2.2779823340684879e-13,  2.2688610519227567e-13,
                2.2598479105062249e-13,  2.2509405096693380e-13,  2.2421365242308250e-13,  2.2334337009504735e-13,  2.2248298556510072e-13,  2.2163228704804238e-13,  2.2079106913067202e-13,  2.1995913252374686e-13,
                2.1913628382571982e-13,  2.1832233529759923e-13,  2.1751710464831365e-13,  2.1672041483000425e-13,  2.1593209384270405e-13,  2.1515197454789682e-13,  2.1437989449047994e-13,  2.1361569572868509e-13,
                2.1285922467153739e-13,  2.1211033192345933e-13,  2.1136887213564935e-13,  2.1063470386388684e-13,  2.0990768943243612e-13,  2.0918769480374086e-13,  2.0847458945361860e-13,  2.0776824625168151e-13,
                2.0706854134672544e-13,  2.0637535405684370e-13,  2.0568856676403590e-13,  2.0500806481309498e-13,  2.0433373641456752e-13,  2.0366547255159379e-13,  2.0300316689044443e-13,  2.0234671569458083e-13,
                2.0169601774207527e-13,  2.0105097424623595e-13,  2.0041148877928991e-13,  1.9977746719898503e-13,  1.9914881757797910e-13,  1.9852545013589109e-13,  1.9790727717389613e-13,  1.9729421301175165e-13,
                1.9668617392714809e-13,  1.9608307809728277e-13,  1.9548484554256054e-13,  1.9489139807233001e-13,  1.9430265923256814e-13,  1.9371855425543069e-13,  1.9313901001058981e-13,  1.9256395495828401e-13,
                1.9199331910400914e-13,  1.9142703395478280e-13,  1.9086503247691734e-13,  1.9030724905524009e-13,  1.8975361945370203e-13,  1.8920408077731910e-13,  1.8865857143539270e-13,  1.8811703110595860e-13,
                1.8757940070141565e-13,  1.8704562233528798e-13,  1.8651563929007643e-13,  1.8598939598615695e-13,  1.8546683795168555e-13,  1.8494791179347133e-13,  1.8443256516878056e-13,  1.8392074675803668e-13,
                1.8341240623838232e-13,  1.8290749425807129e-13,  1.8240596241165942e-13,  1.8190776321596489e-13,  1.8141285008676962e-13,  1.8092117731623464e-13,  1.8043270005100350e-13,  1.7994737427096884e-13,
                1.7946515676867821e-13,  1.7898600512935638e-13,  1.7850987771152209e-13,  1.7803673362817832e-13,  1.7756653272855593e-13,  1.7709923558039109e-13,  1.7663480345271826e-13,  1.7617319829916060e-13,
                1.7571438274170079e-13,  1.7525832005491587e-13,  1.7480497415066011e-13,  1.7435430956318100e-13,  1.7390629143465346e-13,  1.7346088550111843e-13,  1.7301805807881234e-13,  1.7257777605087441e-13,
                1.7214000685441926e-13,  1.7170471846796304e-13,  1.7127187939919122e-13,  1.7084145867305715e-13,  1.7041342582020056e-13,  1.6998775086567571e-13,  1.6956440431797931e-13,  1.6914335715836856e-13,
                1.6872458083046010e-13,  1.6830804723010104e-13,  1.6789372869550350e-13,  1.6748159799763430e-13,  1.6707162833085199e-13,  1.6666379330378340e-13,  1.6625806693043241e-13,  1.6585442362151372e-13,
                1.6545283817600476e-13,  1.6505328577290908e-13,  1.6465574196322479e-13,  1.6426018266211180e-13,  1.6386658414125199e-13,  1.6347492302139638e-13,  1.6308517626509376e-13,  1.6269732116959547e-13,
                1.6231133535993096e-13,  1.6192719678214917e-13,  1.6154488369672080e-13,  1.6116437467209691e-13,  1.6078564857841900e-13,  1.6040868458137641e-13,  1.6003346213620673e-13,  1.5965996098183492e-13,
                1.5928816113514737e-13,  1.5891804288539688e-13,  1.5854958678873484e-13,  1.5818277366286710e-13,  1.5781758458182977e-13,  1.5745400087088183e-13,  1.5709200410151105e-13,  1.5673157608655012e-13,
                1.5637269887539985e-13,  1.5601535474935649e-13,  1.5565952621704020e-13,  1.5530519600992194e-13,  1.5495234707794585e-13,  1.5460096258524477e-13,  1.5425102590594604e-13,  1.5390252062006522e-13,
                1.5355543050948528e-13,  1.5320973955401896e-13,  1.5286543192755185e-13,  1.5252249199426419e-13,  1.5218090430492905e-13,  1.5184065359328491e-13,  1.5150172477248054e-13,  1.5116410293159024e-13,
                1.5082777333219747e-13,  1.5049272140504510e-13,  1.5015893274675026e-13,  1.4982639311658233e-13,  1.4949508843330201e-13,  1.4916500477206002e-13,  1.4883612836135378e-13,  1.4850844558004031e-13,
                1.4818194295440407e-13,  1.4785660715527798e-13,  1.4753242499521631e-13,  1.4720938342571797e-13,  1.4688746953449879e-13,  1.4656667054281137e-13,  1.4624697380281134e-13,  1.4592836679496859e-13,
                1.4561083712552220e-13,  1.4529437252397794e-13,  1.4497896084064708e-13,  1.4466459004422525e-13,  1.4435124821941043e-13,  1.4403892356455857e-13,  1.4372760438937620e-13,  1.4341727911264852e-13,
                1.4310793626000222e-13,  1.4279956446170184e-13,  1.4249215245047872e-13,  1.4218568905939150e-13,  1.4188016321971729e-13,  1.4157556395887243e-13,  1.4127188039836203e-13,  1.4096910175175728e-13,
                1.4066721732269962e-13,  1.4036621650293105e-13,  1.4006608877034942e-13,  1.3976682368708813e-13,  1.3946841089761923e-13,  1.3917084012687905e-13,  1.3887410117841577e-13,  1.3857818393255783e-13,
                1.3828307834460260e-13,  1.3798877444302440e-13,  1.3769526232770116e-13,  1.3740253216815893e-13,  1.3711057420183344e-13,  1.3681937873234803e-13,  1.3652893612780715e-13,  1.3623923681910468e-13,
                1.3595027129824641e-13,  1.3566203011668581e-13,  1.3537450388367258e-13,  1.3508768326461301e-13,  1.3480155897944161e-13,  1.3451612180100327e-13,  1.3423136255344512e-13,  1.3394727211061753e-13,
                1.3366384139448346e-13,  1.3338106137353541e-13,  1.3309892306121941e-13,  1.3281741751436512e-13,  1.3253653583162151e-13,  1.3225626915189731e-13,  1.3197660865280556e-13,  1.3169754554911148e-13,
                1.3141907109118293e-13,  1.3114117656344287e-13,  1.3086385328282283e-13,  1.3058709259721686e-13,  1.3031088588393515e-13,  1.3003522454815642e-13,  1.2976010002137857e-13,  1.2948550375986657e-13,
                1.2921142724309687e-13,  1.2893786197219767e-13,  1.2866479946838397e-13,  1.2839223127138680e-13,  1.2812014893787567e-13,  1.2784854403987342e-13,  1.2757740816316258e-13,  1.2730673290568234e-13,
                1.2703650987591526e-13,  1.2676673069126274e-13,  1.2649738697640831e-13,  1.2622847036166776e-13,  1.2595997248132522e-13,  1.2569188497195392e-13,  1.2542419947072085e-13,  1.2515690761367408e-13,
                1.2489000103401172e-13,  1.2462347136033127e-13,  1.2435731021485832e-13,  1.2409150921165336e-13,  1.2382605995479539e-13,  1.2356095403654111e-13,  1.2329618303545842e-13,  1.2303173851453275e-13,
                1.2276761201924492e-13,  1.2250379507561904e-13,  1.2224027918823894e-13,  1.2197705583823158e-13,  1.2171411648121588e-13,  1.2145145254521524e-13,  1.2118905542853206e-13,  1.2092691649758248e-13,
                1.2066502708468950e-13,  1.2040337848583248e-13,  1.2014196195835114e-13,  1.1988076871860186e-13,  1.1961978993956427e-13,  1.1935901674839572e-13,  1.1909844022393145e-13,  1.1883805139412797e-13,
                1.1857784123344703e-13,  1.1831780066017777e-13,  1.1805792053369408e-13,  1.1779819165164444e-13,  1.1753860474707120e-13,  1.1727915048545622e-13,  1.1701981946168960e-13,  1.1676060219695808e-13,
                1.1650148913554960e-13,  1.1624247064157030e-13,  1.1598353699557007e-13,  1.1572467839107255e-13,  1.1546588493100542e-13,  1.1520714662402646e-13,  1.1494845338074069e-13,  1.1468979500980380e-13,
                1.1443116121390667e-13,  1.1417254158563561e-13,  1.1391392560320265e-13,  1.1365530262604010e-13,  1.1339666189025292e-13,  1.1313799250392262e-13,  1.1287928344225553e-13,  1.1262052354256857e-13,
                1.1236170149910451e-13,  1.1210280585766907e-13,  1.1184382501008118e-13,  1.1158474718842767e-13,  1.1132556045911293e-13,  1.1106625271669371e-13,  1.1080681167748866e-13,  1.1054722487295157e-13,
                1.1028747964279669e-13,  1.1002756312786397e-13,  1.0976746226271106e-13,  1.0950716376791858e-13,  1.0924665414209395e-13,  1.0898591965355852e-13,  1.0872494633170177e-13,  1.0846371995798521e-13,
                1.0820222605657779e-13,  1.0794044988460340e-13,  1.0767837642197993e-13,  1.0741599036082792e-13,  1.0715327609442564e-13,  1.0689021770568593e-13,  1.0662679895512849e-13,  1.0636300326831960e-13,
                1.0609881372274966e-13,  1.0583421303411656e-13,  1.0556918354198129e-13,  1.0530370719475950e-13,  1.0503776553401047e-13,  1.0477133967798238e-13,  1.0450441030436974e-13,  1.0423695763223588e-13,
                1.0396896140305007e-13,  1.0370040086078520e-13,  1.0343125473101800e-13,  1.0316150119896982e-13,  1.0289111788642098e-13,  1.0262008182742706e-13,  1.0234836944276002e-13,  1.0207595651299111e-13,
                1.0180281815012604e-13,  1.0152892876769617e-13,  1.0125426204920163e-13,  1.0097879091479406e-13,  1.0070248748607752e-13,  1.0042532304889646e-13,  1.0014726801396826e-13,  9.9868291875206465e-14,
                9.9588363165567413e-14,  9.9307449410238648e-14,  9.9025517076971809e-14,  9.8742531523345116e-14,  9.8458456940721468e-14,  9.8173256294646916e-14,  9.7886891261410850e-14,  9.7599322160463278e-14,
                9.7310507882355821e-14,  9.7020405811841116e-14,  9.6728971745729826e-14,  9.6436159805064950e-14,  9.6141922341129090e-14,  9.5846209834751131e-14,  9.5548970788323815e-14,  9.5250151609882037e-14,
                9.4949696488522584e-14,  9.4647547260368296e-14,  9.4343643264192121e-14,  9.4037921185717780e-14,  9.3730314889502187e-14,  9.3420755237178315e-14,  9.3109169890693800e-14,  9.2795483099017404e-14,
                9.2479615466599524e-14,  9.2161483701660555e-14,  9.1841000342137710e-14,  9.1518073456841807e-14,  9.1192606319054384e-14,  9.0864497049425040e-14,  9.0533638224600395e-14,  9.0199916447519042e-14,
                8.9863211874728663e-14,  8.9523397695406858e-14,  8.9180339555977636e-14,  8.8833894923288240e-14,  8.8483912378218428e-14,  8.8130230830302363e-14,  8.7772678642409846e-14,  8.7411072652706531e-14,
                8.7045217078926945e-14,  8.6674902287367930e-14,  8.6299903405840776e-14,  8.5919978755977521e-14,  8.5534868075604520e-14,  8.5144290496161419e-14,  8.4747942233080992e-14,  8.4345493938297255e-14,
                8.3936587653147462e-14,  8.3520833286259812e-14,  8.3097804523750425e-14,  8.2667034057086300e-14,  8.2228007985810056e-14,  8.1780159215921400e-14,  8.1322859627241373e-14,  8.0855410720594856e-14,
                8.0377032372540878e-14,  7.9886849213641675e-14,  7.9383873994238239e-14,  7.8866987092200839e-14,  7.8334911024364781e-14,  7.7786178407982558e-14,  7.7219091219248938e-14,  7.6631668315338745e-14,
                7.6021576865766407e-14,  7.5386041313014742e-14,  7.4721720294836841e-14,  7.4024536799600576e-14,  7.3289438192948208e-14,  7.2510047762298534e-14,  7.1678142234780060e-14,  7.0782837816194530e-14,
                6.9809261943285634e-14,  6.8736257492574462e-14,  6.7532112563042041e-14,  6.6145806843742708e-14,  6.4486454294776720e-14,  6.2363933358476286e-14,  5.9241026913954171e-14,  5.5701011775769007e-14
            };
            
            // Density at the proper x-endpoints of the boxes, tail boxes treated specially: { 0, f(x_1), f(x_2), ..., f(x_{n - 2}), 0 }.
            const result_type  m_bottom[n_boxes] = {
                0,                       2.3923402393103877e-4,   4.9367229710792774e-4,   7.6152335133250684e-4,   1.0384905635635716e-3,   1.3225846407249795e-3,   1.6126328556130358e-3,   1.9078528335930781e-3,
                2.2076813305973873e-3,   2.5116913041360149e-3,   2.8195465808724316e-3,   3.1309748646429017e-3,   3.4457506048238276e-3,   3.7636835694796606e-3,   4.0846109144468443e-3,   4.4083914964611475e-3,
                4.7349016828899644e-3,   5.0640321921422638e-3,   5.3956856635557787e-3,   5.7297747558988852e-3,   6.0662206368836017e-3,   6.4049517671786585e-3,   6.7459029098136966e-3,   7.0890143145667709e-3,
                7.4342310399563673e-3,   7.7815023847059700e-3,   8.1307814072221704e-3,   8.4820245165162258e-3,   8.8351911216305069e-3,   9.1902433293630107e-3,   9.5471456821619197e-3,   9.9058649296610738e-3,
                1.0266369828569179e-2,   1.0628630966599132e-2,   1.0992620606893513e-2,   1.1358312550015649e-2,   1.1725682011068045e-2,   1.2094705509897984e-2,   1.2465360772674029e-2,   1.2837626643382270e-2,
                1.3211483004009481e-2,   1.3586910702361136e-2,   1.3963891486612604e-2,   1.4342407945817683e-2,   1.4722443455704261e-2,   1.5103982129176085e-2,   1.5487008771015184e-2,   1.5871508836343758e-2,
                1.6257468392459236e-2,   1.6644874083703263e-2,   1.7033713099065817e-2,   1.7423973142260586e-2,   1.7815642404037928e-2,   1.8208709536527989e-2,   1.8603163629429395e-2,   1.8998994187878865e-2,
                1.9396191111854565e-2,   1.9794744676981366e-2,   2.0194645516619604e-2,   2.0595884605130905e-2,   2.0998453242225099e-2,   2.1402343038301582e-2,   2.1807545900706778e-2,   2.2214054020836674e-2,
                2.2621859862020005e-2,   2.3030956148123490e-2,   2.3441335852825800e-2,   2.3852992189511610e-2,   2.4265918601741331e-2,   2.4680108754255915e-2,   2.5095556524479532e-2,   2.5512255994486038e-2,
                2.5930201443397907e-2,   2.6349387340188865e-2,   2.6769808336863732e-2,   2.7191459261991067e-2,   2.7614335114566090e-2,   2.8038431058183106e-2,   2.8463742415498190e-2,   2.8890264662964339e-2,
                2.9317993425822622e-2,   2.9746924473334016e-2,   3.0177053714237757e-2,   3.0608377192423002e-2,   3.1040891082801555e-2,   3.1474591687370217e-2,   3.1909475431452152e-2,   3.2345538860107320e-2,
                3.2782778634702747e-2,   3.3221191529633962e-2,   3.3660774429189542e-2,   3.4101524324551185e-2,   3.4543438310922244e-2,   3.4986513584778084e-2,   3.5430747441232052e-2,   3.5876137271511214e-2,
                3.6322680560536401e-2,   3.6770374884601391e-2,   3.7219217909146425e-2,   3.7669207386621466e-2,   3.8120341154434957e-2,   3.8572617132984009e-2,   3.9026033323762240e-2,   3.9480587807541668e-2,
                3.9936278742625274e-2,   4.0393104363167047e-2,   4.0851062977556491e-2,   4.1310152966864733e-2,   4.1770372783349549e-2,   4.2231720949016756e-2,   4.2694196054235538e-2,   4.3157796756405436e-2,
                4.3622521778672837e-2,   4.4088369908694886e-2,   4.4555339997448900e-2,   4.5023430958085418e-2,   4.5492641764823134e-2,   4.5962971451884061e-2,   4.6434419112467319e-2,   4.6906983897760070e-2,
                4.7380665015984148e-2,   4.7855461731477032e-2,   4.8331373363805877e-2,   4.8808399286913348e-2,   4.9286538928294108e-2,   4.9765791768200833e-2,   5.0246157338878679e-2,   5.0727635223827205e-2,
                5.1210225057088773e-2,   5.1693926522562503e-2,   5.2178739353342904e-2,   5.2664663331082345e-2,   5.3151698285376551e-2,   5.3639844093172376e-2,   5.4129100678197109e-2,   5.4619468010408614e-2,
                5.5110946105465646e-2,   5.5603535024217698e-2,   5.6097234872213760e-2,   5.6592045799229430e-2,   5.7087967998811798e-2,   5.7585001707841572e-2,   5.8083147206111952e-2,   5.8582404815923736e-2,
                5.9082774901696221e-2,   5.9584257869593422e-2,   6.0086854167165203e-2,   6.0590564283002900e-2,   6.1095388746409041e-2,   6.1601328127080794e-2,   6.2108383034806777e-2,   6.2616554119176888e-2,
                6.3125842069304823e-2,   6.3636247613562970e-2,   6.4147771519329366e-2,   6.4660414592746442e-2,   6.5174177678491261e-2,   6.5689061659556996e-2,   6.6205067457045390e-2,   6.6722196029969950e-2,
                6.7240448375069646e-2,   6.7759825526632886e-2,   6.8280328556331562e-2,   6.8801958573064957e-2,   6.9324716722813314e-2,   6.9848604188500885e-2,   7.0373622189868280e-2,   7.0899771983353950e-2,
                7.1427054861984623e-2,   7.1955472155274565e-2,   7.2485025229133489e-2,   7.3015715485782992e-2,   7.3547544363681374e-2,   7.4080513337456708e-2,   7.4614623917848051e-2,   7.5149877651654666e-2,
                7.5686276121693153e-2,   7.6223820946762376e-2,   7.6762513781616103e-2,   7.7302356316943239e-2,   7.7843350279355591e-2,   7.8385497431383059e-2,   7.8928799571476189e-2,   7.9473258534016002e-2,
                8.0018876189331039e-2,   8.0565654443721552e-2,   8.1113595239490778e-2,   8.1662700554983251e-2,   8.2212972404630076e-2,   8.2764412839001150e-2,   8.3317023944864258e-2,   8.3870807845251009e-2,
                8.4425766699529593e-2,   8.4981902703484305e-2,   8.5539218089401815e-2,   8.6097715126164163e-2,   8.6657396119348453e-2,   8.7218263411333223e-2,   8.7780319381411489e-2,   8.8343566445910438e-2,
                8.8908007058317768e-2,   8.9473643709414672e-2,   9.0040478927415463e-2,   9.0608515278113835e-2,   9.1177755365035782e-2,   9.1748201829599157e-2,   9.2319857351279915e-2,   9.2892724647785018e-2,
                9.3466806475232056e-2,   9.4042105628335571e-2,   9.4618624940600137e-2,   9.5196367284520199e-2,   9.5775335571786716e-2,   9.6355532753500635e-2,   9.6936961820393234e-2,   9.7519625803053366e-2,
                9.8103527772161662e-2,   9.8688670838731716e-2,   9.9275058154358320e-2,   9.9862692911472793e-2,   1.0045157834360545e-1,   1.0104171772565528e-1,   1.0163311437416690e-1,   1.0222577164761481e-1,
                1.0281969294669508e-1,   1.0341488171462449e-1,   1.0401134143744718e-1,   1.0460907564434897e-1,   1.0520808790797934e-1,   1.0580838184478118e-1,   1.0640996111532846e-1,   1.0701282942467180e-1,
                1.0761699052269212e-1,   1.0822244820446242e-1,   1.0882920631061781e-1,   1.0943726872773392e-1,   1.1004663938871375e-1,   1.1065732227318306e-1,   1.1126932140789451e-1,   1.1188264086714056e-1,
                1.1249728477317533e-1,   1.1311325729664546e-1,   1.1373056265703025e-1,   1.1434920512309108e-1,   1.1496918901333022e-1,   1.1559051869645942e-1,   1.1621319859187806e-1,   1.1683723317016139e-1,
                1.1746262695355869e-1,   1.1808938451650177e-1,   1.1871751048612381e-1,   1.1934700954278879e-1,   1.1997788642063166e-1,   1.2061014590810945e-1,   1.2124379284856347e-1,   1.2187883214079291e-1,
                1.2251526873963981e-1,   1.2315310765658588e-1,   1.2379235396036116e-1,   1.2443301277756484e-1,   1.2507508929329850e-1,   1.2571858875181186e-1,   1.2636351645716141e-1,   1.2700987777388212e-1,
                1.2765767812767241e-1,   1.2830692300609277e-1,   1.2895761795927817e-1,   1.2960976860066459e-1,   1.3026338060772997e-1,   1.3091845972274975e-1,   1.3157501175356750e-1,   1.3223304257438069e-1,
                1.3289255812654213e-1,   1.3355356441937728e-1,   1.3421606753101776e-1,   1.3488007360925151e-1,   1.3554558887238973e-1,   1.3621261961015121e-1,   1.3688117218456425e-1,   1.3755125303088658e-1,
                1.3822286865854368e-1,   1.3889602565208595e-1,   1.3957073067216503e-1,   1.4024699045652983e-1,   1.4092481182104250e-1,   1.4160420166071508e-1,   1.4228516695076701e-1,   1.4296771474770412e-1,
                1.4365185219041955e-1,   1.4433758650131717e-1,   1.4502492498745783e-1,   1.4571387504172922e-1,   1.4640444414403968e-1,   1.4709663986253663e-1,   1.4779046985485017e-1,   1.4848594186936246e-1,
                1.4918306374650345e-1,   1.4988184342007367e-1,   1.5058228891859464e-1,   1.5128440836668766e-1,   1.5198820998648157e-1,   1.5269370209905032e-1,   1.5340089312588099e-1,   1.5410979159037298e-1,
                1.5482040611936930e-1,   1.5553274544472063e-1,   1.5624681840488301e-1,   1.5696263394655007e-1,   1.5768020112632054e-1,   1.5839952911240220e-1,   1.5912062718635289e-1,   1.5984350474485979e-1,
                1.6056817130155793e-1,   1.6129463648888877e-1,   1.6202291006000021e-1,   1.6275300189068888e-1,   1.6348492198138597e-1,   1.6421868045918768e-1,   1.6495428757993167e-1,   1.6569175373032045e-1,
                1.6643108943009340e-1,   1.6717230533424832e-1,   1.6791541223531425e-1,   1.6866042106567675e-1,   1.6940734289995723e-1,   1.7015618895744775e-1,   1.7090697060460296e-1,   1.7165969935759073e-1,
                1.7241438688490316e-1,   1.7317104501002978e-1,   1.7392968571419459e-1,   1.7469032113915897e-1,   1.7545296359009223e-1,   1.7621762553851192e-1,   1.7698431962529587e-1,   1.7775305866376814e-1,
                1.7852385564286113e-1,   1.7929672373035601e-1,   1.8007167627620405e-1,   1.8084872681593109e-1,   1.8162788907412792e-1,   1.8240917696802900e-1,   1.8319260461118248e-1,   1.8397818631721421e-1,
                1.8476593660368873e-1,   1.8555587019607039e-1,   1.8634800203178769e-1,   1.8714234726440414e-1,   1.8793892126789917e-1,   1.8873773964106250e-1,   1.8953881821200591e-1,   1.9034217304279594e-1,
                1.9114782043421180e-1,   1.9195577693063251e-1,   1.9276605932505760e-1,   1.9357868466426593e-1,   1.9439367025411721e-1,   1.9521103366500119e-1,   1.9603079273743953e-1,   1.9685296558784560e-1,
                1.9767757061444781e-1,   1.9850462650338206e-1,   1.9933415223495936e-1,   2.0016616709011484e-1,   2.0100069065704455e-1,   2.0183774283803693e-1,   2.0267734385650583e-1,   2.0351951426423268e-1,
                2.0436427494882515e-1,   2.0521164714140068e-1,   2.0606165242450297e-1,   2.0691431274026030e-1,   2.0776965039879479e-1,   2.0862768808689214e-1,   2.0948844887694186e-1,   2.1035195623615839e-1,
                2.1121823403609403e-1,   2.1208730656245527e-1,   2.1295919852523416e-1,   2.1383393506916764e-1,   2.1471154178453769e-1,   2.1559204471832618e-1,   2.1647547038573883e-1,   2.1736184578211339e-1,
                2.1825119839522800e-1,   2.1914355621802625e-1,   2.2003894776177657e-1,   2.2093740206968426e-1,   2.2183894873097550e-1,   2.2274361789547354e-1,   2.2365144028868856e-1,   2.2456244722744352e-1,
                2.2547667063605969e-1,   2.2639414306312668e-1,   2.2731489769888322e-1,   2.2823896839323627e-1,   2.2916638967444748e-1,   2.3009719676851790e-1,   2.3103142561930302e-1,   2.3196911290939256e-1,
                2.3291029608179100e-1,   2.3385501336243702e-1,   2.3480330378360213e-1,   2.3575520720821116e-1,   2.3671076435512970e-1,   2.3767001682546636e-1,   2.3863300712994021e-1,   2.3959977871736735e-1,
                2.4057037600432316e-1,   2.4154484440604080e-1,   2.4252323036860979e-1,   2.4350558140254288e-1,   2.4449194611778337e-1,   2.4548237426022980e-1,   2.4647691674985983e-1,   2.4747562572054033e-1,
                2.4847855456161655e-1,   2.4948575796137919e-1,   2.5049729195251495e-1,   2.5151321395965318e-1,   2.5253358284912886e-1,   2.5355845898109066e-1,   2.5458790426409153e-1,   2.5562198221230902e-1,
                2.5666075800555334e-1,   2.5770429855223193e-1,   2.5875267255545229e-1,   2.5980595058245768e-1,   2.6086420513760525e-1,   2.6192751073911159e-1,   2.6299594399980818e-1,   2.6406958371216794e-1,
                2.6514851093788433e-1,   2.6623280910230694e-1,   2.6732256409406201e-1,   2.6841786437021274e-1,   2.6951880106734375e-1,   2.7062546811898598e-1,   2.7173796237983364e-1,   2.7285638375724351e-1,
                2.7398083535054937e-1,   2.7511142359877157e-1,   2.7624825843735320e-1,   2.7739145346461210e-1,   2.7854112611866063e-1,   2.7969739786561599e-1,   2.8086039440000136e-1,   2.8203024585832475e-1,
                2.8320708704691903e-1,   2.8439105768523385e-1,   2.8558230266589002e-1,   2.8678097233294148e-1,   2.8798722277993985e-1,   2.8920121616956568e-1,   2.9042312107678002e-1,   2.9165311285766404e-1,
                2.9289137404635550e-1,   2.9413809478276414e-1,   2.9539347327405766e-1,   2.9665771629326139e-1,   2.9793103971871567e-1,   2.9921366911859146e-1,   3.0050584038518825e-1,   3.0180780042433769e-1,
                3.0311980790592656e-1,   3.0444213408234781e-1,   3.0577506368260859e-1,   3.0711889589089096e-1,   3.0847394541960200e-1,   3.0984054368839876e-1,   3.1121904012236968e-1,   3.1260980358454708e-1,
                3.1401322396027578e-1,   3.1542971391374556e-1,   3.1685971084030195e-1,   3.1830367904209661e-1,   3.1976211215936978e-1,   3.2123553589535408e-1,   3.2272451107968304e-1,   3.2422963712357219e-1,
                3.2575155593029258e-1,   3.2729095633706492e-1,   3.2884857918009934e-1,   3.3042522309392592e-1,   3.3202175118050305e-1,   3.3363909871432321e-1,   3.3527828208883500e-1,   3.3694040925965235e-1,
                3.3862669200491762e-1,   3.4033846040795251e-1,   3.4207718007917966e-1,   3.4384447278350130e-1,   3.4564214134072038e-1,   3.4747219994195406e-1,   3.4933691140678852e-1,   3.5123883344345894e-1,
                3.5318087674397331e-1,   3.5516637886870954e-1,   3.5719919954660798e-1,   3.5928384556411898e-1,   3.6142563739886728e-1,   3.6363093616739122e-1,   3.6590746013596364e-1,   3.6826473852982627e-1,
                3.7071478385784896e-1,   3.7327312795420626e-1,   3.7596049739570840e-1,   3.7880569205209394e-1,   3.8185093459566198e-1,   3.8516292538395446e-1,   3.8885945587539230e-1,   3.9319106669820760e-1,
                3.9319106669820760e-1,   3.8885945587539230e-1,   3.8516292538395446e-1,   3.8185093459566198e-1,   3.7880569205209394e-1,   3.7596049739570840e-1,   3.7327312795420626e-1,   3.7071478385784896e-1,
                3.6826473852982627e-1,   3.6590746013596364e-1,   3.6363093616739122e-1,   3.6142563739886728e-1,   3.5928384556411898e-1,   3.5719919954660798e-1,   3.5516637886870954e-1,   3.5318087674397331e-1,
                3.5123883344345894e-1,   3.4933691140678852e-1,   3.4747219994195406e-1,   3.4564214134072038e-1,   3.4384447278350130e-1,   3.4207718007917966e-1,   3.4033846040795251e-1,   3.3862669200491762e-1,
                3.3694040925965235e-1,   3.3527828208883500e-1,   3.3363909871432321e-1,   3.3202175118050305e-1,   3.3042522309392592e-1,   3.2884857918009934e-1,   3.2729095633706492e-1,   3.2575155593029258e-1,
                3.2422963712357219e-1,   3.2272451107968304e-1,   3.2123553589535408e-1,   3.1976211215936978e-1,   3.1830367904209661e-1,   3.1685971084030195e-1,   3.1542971391374556e-1,   3.1401322396027578e-1,
                3.1260980358454708e-1,   3.1121904012236968e-1,   3.0984054368839876e-1,   3.0847394541960200e-1,   3.0711889589089096e-1,   3.0577506368260859e-1,   3.0444213408234781e-1,   3.0311980790592656e-1,
                3.0180780042433769e-1,   3.0050584038518825e-1,   2.9921366911859146e-1,   2.9793103971871567e-1,   2.9665771629326139e-1,   2.9539347327405766e-1,   2.9413809478276414e-1,   2.9289137404635550e-1,
                2.9165311285766404e-1,   2.9042312107678002e-1,   2.8920121616956568e-1,   2.8798722277993985e-1,   2.8678097233294148e-1,   2.8558230266589002e-1,   2.8439105768523385e-1,   2.8320708704691903e-1,
                2.8203024585832475e-1,   2.8086039440000136e-1,   2.7969739786561599e-1,   2.7854112611866063e-1,   2.7739145346461210e-1,   2.7624825843735320e-1,   2.7511142359877157e-1,   2.7398083535054937e-1,
                2.7285638375724351e-1,   2.7173796237983364e-1,   2.7062546811898598e-1,   2.6951880106734375e-1,   2.6841786437021274e-1,   2.6732256409406201e-1,   2.6623280910230694e-1,   2.6514851093788433e-1,
                2.6406958371216794e-1,   2.6299594399980818e-1,   2.6192751073911159e-1,   2.6086420513760525e-1,   2.5980595058245768e-1,   2.5875267255545229e-1,   2.5770429855223193e-1,   2.5666075800555334e-1,
                2.5562198221230902e-1,   2.5458790426409153e-1,   2.5355845898109066e-1,   2.5253358284912886e-1,   2.5151321395965318e-1,   2.5049729195251495e-1,   2.4948575796137919e-1,   2.4847855456161655e-1,
                2.4747562572054033e-1,   2.4647691674985983e-1,   2.4548237426022980e-1,   2.4449194611778337e-1,   2.4350558140254288e-1,   2.4252323036860979e-1,   2.4154484440604080e-1,   2.4057037600432316e-1,
                2.3959977871736735e-1,   2.3863300712994021e-1,   2.3767001682546636e-1,   2.3671076435512970e-1,   2.3575520720821116e-1,   2.3480330378360213e-1,   2.3385501336243702e-1,   2.3291029608179100e-1,
                2.3196911290939256e-1,   2.3103142561930302e-1,   2.3009719676851790e-1,   2.2916638967444748e-1,   2.2823896839323627e-1,   2.2731489769888322e-1,   2.2639414306312668e-1,   2.2547667063605969e-1,
                2.2456244722744352e-1,   2.2365144028868856e-1,   2.2274361789547354e-1,   2.2183894873097550e-1,   2.2093740206968426e-1,   2.2003894776177657e-1,   2.1914355621802625e-1,   2.1825119839522800e-1,
                2.1736184578211339e-1,   2.1647547038573883e-1,   2.1559204471832618e-1,   2.1471154178453769e-1,   2.1383393506916764e-1,   2.1295919852523416e-1,   2.1208730656245527e-1,   2.1121823403609403e-1,
                2.1035195623615839e-1,   2.0948844887694186e-1,   2.0862768808689214e-1,   2.0776965039879479e-1,   2.0691431274026030e-1,   2.0606165242450297e-1,   2.0521164714140068e-1,   2.0436427494882515e-1,
                2.0351951426423268e-1,   2.0267734385650583e-1,   2.0183774283803693e-1,   2.0100069065704455e-1,   2.0016616709011484e-1,   1.9933415223495936e-1,   1.9850462650338206e-1,   1.9767757061444781e-1,
                1.9685296558784560e-1,   1.9603079273743953e-1,   1.9521103366500119e-1,   1.9439367025411721e-1,   1.9357868466426593e-1,   1.9276605932505760e-1,   1.9195577693063251e-1,   1.9114782043421180e-1,
                1.9034217304279594e-1,   1.8953881821200591e-1,   1.8873773964106250e-1,   1.8793892126789917e-1,   1.8714234726440414e-1,   1.8634800203178769e-1,   1.8555587019607039e-1,   1.8476593660368873e-1,
                1.8397818631721421e-1,   1.8319260461118248e-1,   1.8240917696802900e-1,   1.8162788907412792e-1,   1.8084872681593109e-1,   1.8007167627620405e-1,   1.7929672373035601e-1,   1.7852385564286113e-1,
                1.7775305866376814e-1,   1.7698431962529587e-1,   1.7621762553851192e-1,   1.7545296359009223e-1,   1.7469032113915897e-1,   1.7392968571419459e-1,   1.7317104501002978e-1,   1.7241438688490316e-1,
                1.7165969935759073e-1,   1.7090697060460296e-1,   1.7015618895744775e-1,   1.6940734289995723e-1,   1.6866042106567675e-1,   1.6791541223531425e-1,   1.6717230533424832e-1,   1.6643108943009340e-1,
                1.6569175373032045e-1,   1.6495428757993167e-1,   1.6421868045918768e-1,   1.6348492198138597e-1,   1.6275300189068888e-1,   1.6202291006000021e-1,   1.6129463648888877e-1,   1.6056817130155793e-1,
                1.5984350474485979e-1,   1.5912062718635289e-1,   1.5839952911240220e-1,   1.5768020112632054e-1,   1.5696263394655007e-1,   1.5624681840488301e-1,   1.5553274544472063e-1,   1.5482040611936930e-1,
                1.5410979159037298e-1,   1.5340089312588099e-1,   1.5269370209905032e-1,   1.5198820998648157e-1,   1.5128440836668766e-1,   1.5058228891859464e-1,   1.4988184342007367e-1,   1.4918306374650345e-1,
                1.4848594186936246e-1,   1.4779046985485017e-1,   1.4709663986253663e-1,   1.4640444414403968e-1,   1.4571387504172922e-1,   1.4502492498745783e-1,   1.4433758650131717e-1,   1.4365185219041955e-1,
                1.4296771474770412e-1,   1.4228516695076701e-1,   1.4160420166071508e-1,   1.4092481182104250e-1,   1.4024699045652983e-1,   1.3957073067216503e-1,   1.3889602565208595e-1,   1.3822286865854368e-1,
                1.3755125303088658e-1,   1.3688117218456425e-1,   1.3621261961015121e-1,   1.3554558887238973e-1,   1.3488007360925151e-1,   1.3421606753101776e-1,   1.3355356441937728e-1,   1.3289255812654213e-1,
                1.3223304257438069e-1,   1.3157501175356750e-1,   1.3091845972274975e-1,   1.3026338060772997e-1,   1.2960976860066459e-1,   1.2895761795927817e-1,   1.2830692300609277e-1,   1.2765767812767241e-1,
                1.2700987777388212e-1,   1.2636351645716141e-1,   1.2571858875181186e-1,   1.2507508929329850e-1,   1.2443301277756484e-1,   1.2379235396036116e-1,   1.2315310765658588e-1,   1.2251526873963981e-1,
                1.2187883214079291e-1,   1.2124379284856347e-1,   1.2061014590810945e-1,   1.1997788642063166e-1,   1.1934700954278879e-1,   1.1871751048612381e-1,   1.1808938451650177e-1,   1.1746262695355869e-1,
                1.1683723317016139e-1,   1.1621319859187806e-1,   1.1559051869645942e-1,   1.1496918901333022e-1,   1.1434920512309108e-1,   1.1373056265703025e-1,   1.1311325729664546e-1,   1.1249728477317533e-1,
                1.1188264086714056e-1,   1.1126932140789451e-1,   1.1065732227318306e-1,   1.1004663938871375e-1,   1.0943726872773392e-1,   1.0882920631061781e-1,   1.0822244820446242e-1,   1.0761699052269212e-1,
                1.0701282942467180e-1,   1.0640996111532846e-1,   1.0580838184478118e-1,   1.0520808790797934e-1,   1.0460907564434897e-1,   1.0401134143744718e-1,   1.0341488171462449e-1,   1.0281969294669508e-1,
                1.0222577164761481e-1,   1.0163311437416690e-1,   1.0104171772565528e-1,   1.0045157834360545e-1,   9.9862692911472793e-2,   9.9275058154358320e-2,   9.8688670838731716e-2,   9.8103527772161662e-2,
                9.7519625803053366e-2,   9.6936961820393234e-2,   9.6355532753500635e-2,   9.5775335571786716e-2,   9.5196367284520199e-2,   9.4618624940600137e-2,   9.4042105628335571e-2,   9.3466806475232056e-2,
                9.2892724647785018e-2,   9.2319857351279915e-2,   9.1748201829599157e-2,   9.1177755365035782e-2,   9.0608515278113835e-2,   9.0040478927415463e-2,   8.9473643709414672e-2,   8.8908007058317768e-2,
                8.8343566445910438e-2,   8.7780319381411489e-2,   8.7218263411333223e-2,   8.6657396119348453e-2,   8.6097715126164163e-2,   8.5539218089401815e-2,   8.4981902703484305e-2,   8.4425766699529593e-2,
                8.3870807845251009e-2,   8.3317023944864258e-2,   8.2764412839001150e-2,   8.2212972404630076e-2,   8.1662700554983251e-2,   8.1113595239490778e-2,   8.0565654443721552e-2,   8.0018876189331039e-2,
                7.9473258534016002e-2,   7.8928799571476189e-2,   7.8385497431383059e-2,   7.7843350279355591e-2,   7.7302356316943239e-2,   7.6762513781616103e-2,   7.6223820946762376e-2,   7.5686276121693153e-2,
                7.5149877651654666e-2,   7.4614623917848051e-2,   7.4080513337456708e-2,   7.3547544363681374e-2,   7.3015715485782992e-2,   7.2485025229133489e-2,   7.1955472155274565e-2,   7.1427054861984623e-2,
                7.0899771983353950e-2,   7.0373622189868280e-2,   6.9848604188500885e-2,   6.9324716722813314e-2,   6.8801958573064957e-2,   6.8280328556331562e-2,   6.7759825526632886e-2,   6.7240448375069646e-2,
                6.6722196029969950e-2,   6.6205067457045390e-2,   6.5689061659556996e-2,   6.5174177678491261e-2,   6.4660414592746442e-2,   6.4147771519329366e-2,   6.3636247613562970e-2,   6.3125842069304823e-2,
                6.2616554119176888e-2,   6.2108383034806777e-2,   6.1601328127080794e-2,   6.1095388746409041e-2,   6.0590564283002900e-2,   6.0086854167165203e-2,   5.9584257869593422e-2,   5.9082774901696221e-2,
                5.8582404815923736e-2,   5.8083147206111952e-2,   5.7585001707841572e-2,   5.7087967998811798e-2,   5.6592045799229430e-2,   5.6097234872213760e-2,   5.5603535024217698e-2,   5.5110946105465646e-2,
                5.4619468010408614e-2,   5.4129100678197109e-2,   5.3639844093172376e-2,   5.3151698285376551e-2,   5.2664663331082345e-2,   5.2178739353342904e-2,   5.1693926522562503e-2,   5.1210225057088773e-2,
                5.0727635223827205e-2,   5.0246157338878679e-2,   4.9765791768200833e-2,   4.9286538928294108e-2,   4.8808399286913348e-2,   4.8331373363805877e-2,   4.7855461731477032e-2,   4.7380665015984148e-2,
                4.6906983897760070e-2,   4.6434419112467319e-2,   4.5962971451884061e-2,   4.5492641764823134e-2,   4.5023430958085418e-2,   4.4555339997448900e-2,   4.4088369908694886e-2,   4.3622521778672837e-2,
                4.3157796756405436e-2,   4.2694196054235538e-2,   4.2231720949016756e-2,   4.1770372783349549e-2,   4.1310152966864733e-2,   4.0851062977556491e-2,   4.0393104363167047e-2,   3.9936278742625274e-2,
                3.9480587807541668e-2,   3.9026033323762240e-2,   3.8572617132984009e-2,   3.8120341154434957e-2,   3.7669207386621466e-2,   3.7219217909146425e-2,   3.6770374884601391e-2,   3.6322680560536401e-2,
                3.5876137271511214e-2,   3.5430747441232052e-2,   3.4986513584778084e-2,   3.4543438310922244e-2,   3.4101524324551185e-2,   3.3660774429189542e-2,   3.3221191529633962e-2,   3.2782778634702747e-2,
                3.2345538860107320e-2,   3.1909475431452152e-2,   3.1474591687370217e-2,   3.1040891082801555e-2,   3.0608377192423002e-2,   3.0177053714237757e-2,   2.9746924473334016e-2,   2.9317993425822622e-2,
                2.8890264662964339e-2,   2.8463742415498190e-2,   2.8038431058183106e-2,   2.7614335114566090e-2,   2.7191459261991067e-2,   2.6769808336863732e-2,   2.6349387340188865e-2,   2.5930201443397907e-2,
                2.5512255994486038e-2,   2.5095556524479532e-2,   2.4680108754255915e-2,   2.4265918601741331e-2,   2.3852992189511610e-2,   2.3441335852825800e-2,   2.3030956148123490e-2,   2.2621859862020005e-2,
                2.2214054020836674e-2,   2.1807545900706778e-2,   2.1402343038301582e-2,   2.0998453242225099e-2,   2.0595884605130905e-2,   2.0194645516619604e-2,   1.9794744676981366e-2,   1.9396191111854565e-2,
                1.8998994187878865e-2,   1.8603163629429395e-2,   1.8208709536527989e-2,   1.7815642404037928e-2,   1.7423973142260586e-2,   1.7033713099065817e-2,   1.6644874083703263e-2,   1.6257468392459236e-2,
                1.5871508836343758e-2,   1.5487008771015184e-2,   1.5103982129176085e-2,   1.4722443455704261e-2,   1.4342407945817683e-2,   1.3963891486612604e-2,   1.3586910702361136e-2,   1.3211483004009481e-2,
                1.2837626643382270e-2,   1.2465360772674029e-2,   1.2094705509897984e-2,   1.1725682011068045e-2,   1.1358312550015649e-2,   1.0992620606893513e-2,   1.0628630966599132e-2,   1.0266369828569179e-2,
                9.9058649296610738e-3,   9.5471456821619197e-3,   9.1902433293630107e-3,   8.8351911216305069e-3,   8.4820245165162258e-3,   8.1307814072221704e-3,   7.7815023847059700e-3,   7.4342310399563673e-3,
                7.0890143145667709e-3,   6.7459029098136966e-3,   6.4049517671786585e-3,   6.0662206368836017e-3,   5.7297747558988852e-3,   5.3956856635557787e-3,   5.0640321921422638e-3,   4.7349016828899644e-3,
                4.4083914964611475e-3,   4.0846109144468443e-3,   3.7636835694796606e-3,   3.4457506048238276e-3,   3.1309748646429017e-3,   2.8195465808724316e-3,   2.5116913041360149e-3,   2.2076813305973873e-3,
                1.9078528335930781e-3,   1.6126328556130358e-3,   1.3225846407249795e-3,   1.0384905635635716e-3,   7.6152335133250684e-4,   4.9367229710792774e-4,   2.3923402393103877e-4,   0
            };
            
            // (<diameter> + 1)-upscaled probability of simple coverage of the boxes: { (x_1 - m) / (x_0* - m), (x_2 - m) / (x_1 - m), ..., (m - x_{n - 1}) / (m - x_n*) }.
            const uniform_type m_coverage_scaled[n_boxes] = {
                4038316626,    4079894571,    4153601824,    4187222523,    4206799793,    4219726611,    4228951427,    4235892573,
                4241320492,    4245691269,    4249292823,    4252316242,    4254893535,    4257118949,    4259061642,    4260773562,
                4262294518,    4263655551,    4264881238,    4265991302,    4267001763,    4267925772,    4268774233,    4269556264,
                4270279554,    4270950629,    4271575073,    4272157688,    4272702627,    4273213505,    4273693481,    4274145328,
                4274571493,    4274974142,    4275355201,    4275716386,    4276059233,    4276385124,    4276695299,    4276990880,
                4277272884,    4277542231,    4277799760,    4278046236,    4278282358,    4278508766,    4278726047,    4278934740,
                4279135345,    4279328318,    4279514085,    4279693037,    4279865539,    4280031929,    4280192520,    4280347606,
                4280497459,    4280642332,    4280782465,    4280918080,    4281049386,    4281176577,    4281299837,    4281419339,
                4281535245,    4281647708,    4281756872,    4281862872,    4281965837,    4282065888,    4282163140,    4282257700,
                4282349673,    4282439154,    4282526237,    4282611009,    4282693553,    4282773949,    4282852272,    4282928593,
                4283002981,    4283075501,    4283146215,    4283215182,    4283282459,    4283348099,    4283412154,    4283474674,
                4283535705,    4283595293,    4283653481,    4283710310,    4283765821,    4283820050,    4283873035,    4283924811,
                4283975410,    4284024867,    4284073211,    4284120472,    4284166679,    4284211860,    4284256042,    4284299249,
                4284341507,    4284382838,    4284423267,    4284462815,    4284501503,    4284539352,    4284576381,    4284612610,
                4284648056,    4284682739,    4284716674,    4284749879,    4284782369,    4284814160,    4284845268,    4284875706,
                4284905488,    4284934628,    4284963140,    4284991035,    4285018326,    4285045026,    4285071145,    4285096695,
                4285121686,    4285146130,    4285170036,    4285193414,    4285216273,    4285238624,    4285260474,    4285281833,
                4285302709,    4285323111,    4285343045,    4285362521,    4285381545,    4285400125,    4285418268,    4285435980,
                4285453269,    4285470141,    4285486601,    4285502657,    4285518314,    4285533579,    4285548455,    4285562950,
                4285577067,    4285590814,    4285604193,    4285617211,    4285629872,    4285642180,    4285654140,    4285665756,
                4285677033,    4285687974,    4285698584,    4285708866,    4285718824,    4285728462,    4285737784,    4285746791,
                4285755489,    4285763880,    4285771967,    4285779754,    4285787243,    4285794437,    4285801340,    4285807953,
                4285814279,    4285820321,    4285826081,    4285831562,    4285836766,    4285841696,    4285846352,    4285850739,
                4285854856,    4285858707,    4285862294,    4285865618,    4285868680,    4285871484,    4285874029,    4285876319,
                4285878354,    4285880136,    4285881666,    4285882946,    4285883977,    4285884760,    4285885296,    4285885587,
                4285885634,    4285885437,    4285884998,    4285884318,    4285883397,    4285882236,    4285880837,    4285879200,
                4285877325,    4285875213,    4285872865,    4285870282,    4285867464,    4285864411,    4285861124,    4285857604,
                4285853850,    4285849863,    4285845643,    4285841191,    4285836506,    4285831589,    4285826440,    4285821059,
                4285815446,    4285809601,    4285803523,    4285797214,    4285790672,    4285783898,    4285776891,    4285769651,
                4285762177,    4285754470,    4285746529,    4285738353,    4285729943,    4285721297,    4285712415,    4285703297,
                4285693942,    4285684349,    4285674517,    4285664446,    4285654135,    4285643584,    4285632790,    4285621754,
                4285610475,    4285598951,    4285587182,    4285575166,    4285562902,    4285550389,    4285537627,    4285524613,
                4285511347,    4285497826,    4285484051,    4285470018,    4285455728,    4285441178,    4285426367,    4285411292,
                4285395954,    4285380349,    4285364477,    4285348334,    4285331920,    4285315233,    4285298270,    4285281030,
                4285263510,    4285245709,    4285227624,    4285209254,    4285190594,    4285171645,    4285152402,    4285132864,
                4285113029,    4285092892,    4285072453,    4285051708,    4285030654,    4285009289,    4284987610,    4284965613,
                4284943297,    4284920657,    4284897690,    4284874394,    4284850765,    4284826799,    4284802493,    4284777844,
                4284752848,    4284727501,    4284701800,    4284675740,    4284649318,    4284622529,    4284595370,    4284567836,
                4284539923,    4284511626,    4284482941,    4284453864,    4284424389,    4284394512,    4284364228,    4284333531,
                4284302417,    4284270880,    4284238915,    4284206517,    4284173679,    4284140396,    4284106663,    4284072472,
                4284037818,    4284002695,    4283967096,    4283931014,    4283894443,    4283857376,    4283819805,    4283781725,
                4283743126,    4283704001,    4283664344,    4283624145,    4283583397,    4283542091,    4283500219,    4283457773,
                4283414742,    4283371119,    4283326894,    4283282056,    4283236598,    4283190507,    4283143774,    4283096389,
                4283048341,    4282999618,    4282950210,    4282900104,    4282849289,    4282797752,    4282745481,    4282692463,
                4282638685,    4282584134,    4282528794,    4282472653,    4282415695,    4282357906,    4282299270,    4282239772,
                4282179394,    4282118121,    4282055935,    4281992818,    4281928753,    4281863721,    4281797702,    4281730678,
                4281662628,    4281593531,    4281523365,    4281452110,    4281379741,    4281306237,    4281231572,    4281155723,
                4281078663,    4281000367,    4280920807,    4280839957,    4280757786,    4280674266,    4280589367,    4280503056,
                4280415302,    4280326070,    4280235327,    4280143037,    4280049164,    4279953668,    4279856511,    4279757653,
                4279657051,    4279554662,    4279450441,    4279344342,    4279236318,    4279126318,    4279014290,    4278900182,
                4278783939,    4278665504,    4278544816,    4278421815,    4278296437,    4278168615,    4278038282,    4277905366,
                4277769792,    4277631485,    4277490363,    4277346343,    4277199340,    4277049263,    4276896018,    4276739508,
                4276579630,    4276416280,    4276249345,    4276078711,    4275904258,    4275725859,    4275543382,    4275356692,
                4275165643,    4274970086,    4274769862,    4274564808,    4274354751,    4274139508,    4273918891,    4273692699,
                4273460723,    4273222742,    4272978526,    4272727829,    4272470395,    4272205953,    4271934219,    4271654890,
                4271367648,    4271072158,    4270768064,    4270454988,    4270132534,    4269800276,    4269457768,    4269104531,
                4268740060,    4268363815,    4267975221,    4267573666,    4267158495,    4266729011,    4266284465,    4265824056,
                4265346927,    4264852154,    4264338747,    4263805640,    4263251681,    4262675630,    4262076144,    4261451770,
                4260800931,    4260121915,    4259412858,    4258671727,    4257896303,    4257084157,    4256232622,    4255338769,
                4254399371,    4253410861,    4252369292,    4251270282,    4250108951,    4248879851,    4247576878,    4246193175,
                4244721006,    4243151615,    4241475050,    4239679954,    4237753305,    4235680102,    4233442974,    4231021690,
                4228392552,    4225527614,    4222393687,    4218951052,    4215151775,    4210937464,    4206236258,    4200958719,
                4194992103,    4188192267,    4180371931,    4171283282,    4160591418,    4147832525,    4132345427,    4113154509,
                4088758343,    4056722037,    4012822566,    3949049972,    3848173889,    3665259465,    3234817515,    0,
                0,             3234817515,    3665259465,    3848173889,    3949049972,    4012822566,    4056722037,    4088758343,
                4113154509,    4132345427,    4147832525,    4160591418,    4171283282,    4180371931,    4188192267,    4194992103,
                4200958719,    4206236258,    4210937464,    4215151775,    4218951052,    4222393687,    4225527614,    4228392552,
                4231021690,    4233442974,    4235680102,    4237753305,    4239679954,    4241475050,    4243151615,    4244721006,
                4246193175,    4247576878,    4248879851,    4250108951,    4251270282,    4252369292,    4253410861,    4254399371,
                4255338769,    4256232622,    4257084157,    4257896303,    4258671727,    4259412858,    4260121915,    4260800931,
                4261451770,    4262076144,    4262675630,    4263251681,    4263805640,    4264338747,    4264852154,    4265346927,
                4265824056,    4266284465,    4266729011,    4267158495,    4267573666,    4267975221,    4268363815,    4268740060,
                4269104531,    4269457768,    4269800276,    4270132534,    4270454988,    4270768064,    4271072158,    4271367648,
                4271654890,    4271934219,    4272205953,    4272470395,    4272727829,    4272978526,    4273222742,    4273460723,
                4273692699,    4273918891,    4274139508,    4274354751,    4274564808,    4274769862,    4274970086,    4275165643,
                4275356692,    4275543382,    4275725859,    4275904258,    4276078711,    4276249345,    4276416280,    4276579630,
                4276739508,    4276896018,    4277049263,    4277199340,    4277346343,    4277490363,    4277631485,    4277769792,
                4277905366,    4278038282,    4278168615,    4278296437,    4278421815,    4278544816,    4278665504,    4278783939,
                4278900182,    4279014290,    4279126318,    4279236318,    4279344342,    4279450441,    4279554662,    4279657051,
                4279757653,    4279856511,    4279953668,    4280049164,    4280143037,    4280235327,    4280326070,    4280415302,
                4280503056,    4280589367,    4280674266,    4280757786,    4280839957,    4280920807,    4281000367,    4281078663,
                4281155723,    4281231572,    4281306237,    4281379741,    4281452110,    4281523365,    4281593531,    4281662628,
                4281730678,    4281797702,    4281863721,    4281928753,    4281992818,    4282055935,    4282118121,    4282179394,
                4282239772,    4282299270,    4282357906,    4282415695,    4282472653,    4282528794,    4282584134,    4282638685,
                4282692463,    4282745481,    4282797752,    4282849289,    4282900104,    4282950210,    4282999618,    4283048341,
                4283096389,    4283143774,    4283190507,    4283236598,    4283282056,    4283326894,    4283371119,    4283414742,
                4283457773,    4283500219,    4283542091,    4283583397,    4283624145,    4283664344,    4283704001,    4283743126,
                4283781725,    4283819805,    4283857376,    4283894443,    4283931014,    4283967096,    4284002695,    4284037818,
                4284072472,    4284106663,    4284140396,    4284173679,    4284206517,    4284238915,    4284270880,    4284302417,
                4284333531,    4284364228,    4284394512,    4284424389,    4284453864,    4284482941,    4284511626,    4284539923,
                4284567836,    4284595370,    4284622529,    4284649318,    4284675740,    4284701800,    4284727501,    4284752848,
                4284777844,    4284802493,    4284826799,    4284850765,    4284874394,    4284897690,    4284920657,    4284943297,
                4284965613,    4284987610,    4285009289,    4285030654,    4285051708,    4285072453,    4285092892,    4285113029,
                4285132864,    4285152402,    4285171645,    4285190594,    4285209254,    4285227624,    4285245709,    4285263510,
                4285281030,    4285298270,    4285315233,    4285331920,    4285348334,    4285364477,    4285380349,    4285395954,
                4285411292,    4285426367,    4285441178,    4285455728,    4285470018,    4285484051,    4285497826,    4285511347,
                4285524613,    4285537627,    4285550389,    4285562902,    4285575166,    4285587182,    4285598951,    4285610475,
                4285621754,    4285632790,    4285643584,    4285654135,    4285664446,    4285674517,    4285684349,    4285693942,
                4285703297,    4285712415,    4285721297,    4285729943,    4285738353,    4285746529,    4285754470,    4285762177,
                4285769651,    4285776891,    4285783898,    4285790672,    4285797214,    4285803523,    4285809601,    4285815446,
                4285821059,    4285826440,    4285831589,    4285836506,    4285841191,    4285845643,    4285849863,    4285853850,
                4285857604,    4285861124,    4285864411,    4285867464,    4285870282,    4285872865,    4285875213,    4285877325,
                4285879200,    4285880837,    4285882236,    4285883397,    4285884318,    4285884998,    4285885437,    4285885634,
                4285885587,    4285885296,    4285884760,    4285883977,    4285882946,    4285881666,    4285880136,    4285878354,
                4285876319,    4285874029,    4285871484,    4285868680,    4285865618,    4285862294,    4285858707,    4285854856,
                4285850739,    4285846352,    4285841696,    4285836766,    4285831562,    4285826081,    4285820321,    4285814279,
                4285807953,    4285801340,    4285794437,    4285787243,    4285779754,    4285771967,    4285763880,    4285755489,
                4285746791,    4285737784,    4285728462,    4285718824,    4285708866,    4285698584,    4285687974,    4285677033,
                4285665756,    4285654140,    4285642180,    4285629872,    4285617211,    4285604193,    4285590814,    4285577067,
                4285562950,    4285548455,    4285533579,    4285518314,    4285502657,    4285486601,    4285470141,    4285453269,
                4285435980,    4285418268,    4285400125,    4285381545,    4285362521,    4285343045,    4285323111,    4285302709,
                4285281833,    4285260474,    4285238624,    4285216273,    4285193414,    4285170036,    4285146130,    4285121686,
                4285096695,    4285071145,    4285045026,    4285018326,    4284991035,    4284963140,    4284934628,    4284905488,
                4284875706,    4284845268,    4284814160,    4284782369,    4284749879,    4284716674,    4284682739,    4284648056,
                4284612610,    4284576381,    4284539352,    4284501503,    4284462815,    4284423267,    4284382838,    4284341507,
                4284299249,    4284256042,    4284211860,    4284166679,    4284120472,    4284073211,    4284024867,    4283975410,
                4283924811,    4283873035,    4283820050,    4283765821,    4283710310,    4283653481,    4283595293,    4283535705,
                4283474674,    4283412154,    4283348099,    4283282459,    4283215182,    4283146215,    4283075501,    4283002981,
                4282928593,    4282852272,    4282773949,    4282693553,    4282611009,    4282526237,    4282439154,    4282349673,
                4282257700,    4282163140,    4282065888,    4281965837,    4281862872,    4281756872,    4281647708,    4281535245,
                4281419339,    4281299837,    4281176577,    4281049386,    4280918080,    4280782465,    4280642332,    4280497459,
                4280347606,    4280192520,    4280031929,    4279865539,    4279693037,    4279514085,    4279328318,    4279135345,
                4278934740,    4278726047,    4278508766,    4278282358,    4278046236,    4277799760,    4277542231,    4277272884,
                4276990880,    4276695299,    4276385124,    4276059233,    4275716386,    4275355201,    4274974142,    4274571493,
                4274145328,    4273693481,    4273213505,    4272702627,    4272157688,    4271575073,    4270950629,    4270279554,
                4269556264,    4268774233,    4267925772,    4267001763,    4265991302,    4264881238,    4263655551,    4262294518,
                4260773562,    4259061642,    4257118949,    4254893535,    4252316242,    4249292823,    4245691269,    4241320492,
                4235892573,    4228951427,    4219726611,    4206799793,    4187222523,    4153601824,    4079894571,    4038316626
            };

            probability::dist_normal m_distribution = probability::dist_normal::standard;

            result_type pdf(result_type x) const
            {
                return this->m_distribution.pdf(x);
            }

        public:
            result_type sample_from_box_horizontal(uniform_type box_index, uniform_type uniform_random, bool& is_interior) const
            {
                result_type z = uniform_random * this->m_width_scaled[box_index];
                is_interior = (uniform_random < this->m_coverage_scaled[box_index]);
                return z;
            }

            bool is_inside_box_vertical(uniform_type box_index, result_type horizontal, uniform_type uniform_random) const
            {
                result_type f = this->pdf(horizontal);
                return (this->m_bottom[box_index] + uniform_random * this->m_height_scaled[box_index] < f);
            }

            bool is_tail_box(uniform_type box_index) const
            {
                switch (box_index)
                {
                case 0: return true;
                case n_boxes - 1: return true;
                default: return false;
                }
            }

            template <typename t_engine_type>
            result_type sample_tail(uniform_type box_index, t_engine_type& uniform_generator)
            {
                const auto r = right_tail_x;
                const auto r_squared = r * r;
                double result = 0.0;
                double u1, u2;
                for (;;) // while (true)
                {
                    u1 = (uniform_generator() - t_engine_type::min()) / double_constants::two_pow_32;
                    u2 = (uniform_generator() - t_engine_type::min()) / double_constants::two_pow_32;
                    result = std::sqrt(r_squared - 2 * std::log(1.0 - u1));
                    if (u2 * result < r) return box_index == 0 ? result : -result;
                }
            }
        };
    }
}

#endif // AFTERMATH_RANDOM_ZIGGURAT_NORMAL_1024_UINT32_HPP_INCLUDED
